web-dev-qa-db-ja.com

小数点以下2桁をフォーマットするSSRS式にゼロが表示されない

次の式を使用して、2つの小数点のみを表示するように値をフォーマットしています。値が0でない場合は正常に機能します。ただし、値が0の場合、0は表示されません。

例えば。 使用される式

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

CUL1.Valueが2.5670909の場合、レポート2.56に表示される値(これは素晴らしいです!)CUL1.Valueが0.006709の場合、値は表示されません(0.00を表示したいです)CUL1.Valueが0の場合、値は表示されません(I 0を表示したい)

ありがとう。

39
Abe

これを試して

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

小数点の右側の最初の数字が常に表示されることを確認する必要があります。カスタム形式の文字列では、#は数値が存在する場合は表示することを意味し、0は常に何かを表示することを意味し、としてプレースホルダー。

したがって、あなたの場合、次のようなものが必要になります。

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

これは、存在する場合は2 DPを表示​​します。ゼロ以外の部分は常に最下位部分を表示し、グループ化セパレーターとしてを使用します。

これはあなたのデータでどのように見えるかです(参考のために大きな値も追加しました):

enter image description here

数千、数百万などの分離に関心がない場合は、Paul-Janが提案したように#0.##を使用してください。

Custom Numeric Format Strings の標準ドキュメントは、ここでの最良のリファレンスです。

46
Ian Preston

たとえば、常に"12.00"または"12.23"のように10進数の後に値を表示する場合は、次のように使用します。

FormatNumber("145.231000",2)表示される145.23

FormatNumber("145",2)表示される145.00

9
Raj

@abe0.00を表示することを提案し、値が0の場合、"#0.##""0"を表示するため、Format(Fields!CUL1.Value, "0.00")はより適切に動作します。

6
dvdhns

次のコードスニペットを試してください。

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

それが役立つことを願っています、ありがとう。

1
Rajini Kumar AV

実際には、次のものが必要でした...丸めずに小数を取り除くため、「12.23」は「12」と表示する必要があります。 SSRSでは、数値をパーセントでフォーマットしないでください。書式設定をデフォルトのままにして(書式設定は適用されない)、式で以下を実行します。= Fix(Fields!PctAmt.Value*100))

数値に100を掛けてから、数値の整数部分のみを返すSSRSのFIX関数を適用します。

1
carlito007