web-dev-qa-db-fra.com

L'expression SSRS pour formater deux décimales ne montre pas les zéros

J'utilise l'expression suivante pour mettre en forme ma valeur afin d'afficher uniquement deux points décimaux. Ce qui fonctionne bien si la valeur n'est pas 0. Toutefois, lorsque la valeur est 0, il ne s'affiche pas 0.

par exemple. expression utilisée

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

Si CUL1.Valeur vaut 2.5670909, la valeur indiquée dans le rapport 2.56 (excellent!) Si CUL1.Valeur vaut 0,006709, aucune valeur n’est affichée (j’aimerais qu’elle affiche 0,00). Si CUL1.Valeur est 0, aucune valeur n’est affichée (I aimerait montrer 0)

Merci.

39
Abe

Essaye ça

=Format(Fields!CUL1.Value,"F2")
50
Spegah

Vous devez vous assurer que le premier chiffre à droite du point décimal est toujours affiché. Dans les chaînes de format personnalisé, # signifie qu’il faut afficher le numéro s’il existe et 0 signifie que toujours afficher quelque chose, avec 0 comme espace réservé.

Donc, dans votre cas, vous aurez besoin de quelque chose comme:

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

Ceci dit: affichez 2 DP s'ils existent, pour la partie non nulle, affichez toujours la partie la plus basse et utilisez , comme séparateur de regroupement.

Voici à quoi cela ressemble sur vos données (j'ai ajouté une grande valeur également pour référence):

enter image description here

Si vous ne souhaitez pas séparer des milliers, des millions, etc., utilisez simplement #0.## comme l'a suggéré Paul-Jan.

Les documents standard pour Chaînes de format numérique personnalisées sont votre meilleure référence ici.

46
Ian Preston

Si vous voulez toujours afficher une valeur après le nombre décimal, par exemple "12.00" ou "12.23" Alors utilisez comme ci-dessous, cela a fonctionné pour moi

FormatNumber("145.231000",2) qui affichera 145.23

FormatNumber("145",2) qui affichera 145,00

9
Raj

Format(Fields!CUL1.Value, "0.00") fonctionnerait mieux puisque @abe suggère qu'ils veuillent montrer 0.00, et si la valeur était 0, "#0.##" montrerait "0".

6
dvdhns

S'il vous plaît essayez l'extrait de code suivant,

IIF(Round(Avg(Fields!Vision_Score.Value)) = Avg(Fields!Vision_Score.Value), 
Format(Avg(Fields!Vision_Score.Value)), 
FORMAT(Avg(Fields!Vision_Score.Value),"##.##"))

j'espère que ça va aider, merci.

1
Rajini Kumar AV

En fait, j'avais besoin de ce qui suit ... pour me débarrasser des décimales sans arrondir, il faut donc indiquer "12.23" comme "12". Dans SSRS, ne formatez pas le nombre sous forme de pourcentage. Conservez la mise en forme par défaut (aucune mise en forme appliquée), puis dans l'expression, procédez comme suit: = Fix(Fields!PctAmt.Value*100))

Multipliez le nombre par 100, puis appliquez la fonction FIX dans SSRS, qui ne renvoie que la partie entière d'un nombre.

1
carlito007