Wyrażenie SSRS formatujące dwa miejsca po przecinku nie pokazuje zer

Używam następującego wyrażenia do sformatowania mojej wartości, aby pokazać tylko dwa punkty dziesiętne. Co działa dobrze, jeśli wartość nie jest 0. Jednak gdy wartość jest 0, nie pokazuje 0.

Np. użyte wyrażenie

=Format(Fields!CUL1.Value, "##.##")

Jeśli CUL1.Wartość to 2.5670909 wartość pokazana w raporcie 2.56 (to jest genialne!) Jeśli CUL1.Wartość to 0.006709 nie jest wyświetlana żadna wartość (chciałbym, aby pokazywała 0.00) Jeśli CUL1.Wartość to 0 nie jest wyświetlana żadna wartość (chciałbym pokazać 0)

Dzięki.
Author: pedram, 2014-01-17

6 answers

Spróbuj tego

=Format(Fields!CUL1.Value,"F2")
 46
Author: Spegah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-15 05:04:10

Musisz upewnić się, że pierwsza cyfra po prawej stronie przecinka jest zawsze wyświetlana. W niestandardowych ciągach formatowych, # oznacza wyświetlanie liczby, jeśli istnieje, a {[2] } oznacza zawsze wyświetlanie czegoś, z 0 jako element zastępczy.

Więc w Twoim przypadku będziesz potrzebował czegoś takiego jak:

=Format(Fields!CUL1.Value, "#,##0.##")

To powiedzenie: wyświetl 2 DP, jeśli istnieją, dla niezerowej części Zawsze wyświetl najniższą część i użyj , jako separator grupowania.

Oto jak wygląda na Twoje dane (dodałem również dużą wartość dla odniesienia):

Tutaj wpisz opis obrazka

Jeśli nie jesteś zainteresowany rozdzielaniem tysięcy, milionów itd., Po prostu użyj #0.##, Jak zasugerował Paul-Jan.

Standardowe dokumenty dla niestandardowych ciągów formatów numerycznych są najlepszym punktem odniesienia tutaj.

 45
Author: Ian Preston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-17 15:24:18

Jeśli chcesz zawsze wyświetlać jakąś wartość po przecinku, na przykład "12.00" lub "12.23" Następnie użyj tak jak poniżej, to działało dla mnie

FormatNumber("145.231000",2) który wyświetli 145.23

FormatNumber("145",2) który wyświetli 145.00

 8
Author: Raj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-15 05:04:47

Format(Fields!CUL1.Value, "0.00") będzie działać lepiej, ponieważ @abe sugeruje, że chcą pokazać 0.00, a jeśli wartość wynosi 0, "#0.##" pokaże "0".

 5
Author: dvdhns,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-28 22:59:26

Właściwie, potrzebowałem następujących rzeczy...pozbądź się miejsc dziesiętnych bez zaokrąglania, więc "12.23 "musi być pokazane jako"12". W SSR nie Formatuj liczby jako procent. Pozostaw formatowanie jako domyślne (nie zastosowano formatowania), a następnie w wyrażeniu wykonaj następujące czynności: =Fix(Fields!PctAmt.Value*100))

Pomnóż liczbę przez 100, a następnie zastosuj funkcję FIX w SSRS, która zwraca tylko całkowitą część liczby.

 0
Author: carlito007,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-13 22:01:03

Wypróbuj poniższy fragment kodu,

IIF(Round(Avg(Fields!Vision_Score.Value)) = Avg(Fields!Vision_Score.Value), 
Format(Avg(Fields!Vision_Score.Value)), 
FORMAT(Avg(Fields!Vision_Score.Value),"##.##"))
Mam nadzieję, że to pomoże, dziękuję.
 0
Author: Rajini Kumar AV,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-21 06:00:47