用于格式化两个小数位的SSRS表达式不显示零

Abe*_*Abe 40 service reporting reporting-services

我使用以下表达式来格式化我的值,只显示两个小数点.如果值不为0,则工作正常.但是,当值为0时,它不显示0.

例如. 使用表达式

=Format(Fields!CUL1.Value, "##.##")
Run Code Online (Sandbox Code Playgroud)

如果CUL1.Value是2.5670909,则报告2.56中显示的值(这很棒!)如果CUL1.Value为0.006709,则不显示任何值(我希望它显示0.00)如果CUL1.Value为0,则不显示任何值(I想表明0)

谢谢.

小智 51

试试这个

=Format(Fields!CUL1.Value,"F2")
Run Code Online (Sandbox Code Playgroud)

  • 它认为值得注意的是,这会将值转换为字符串.导出到Excel时,它不再是数字...转到属性窗口(F4)并找到数字,然后输入N2作为格式(或N0是您想要没有小数位)将在Excel中生成一个数字. (8认同)
  • 请改用FormatNumber(Fields!CUL1.Value,2) (4认同)

Ian*_*ton 46

您需要确保始终显示小数点右侧的第一个数字.在自定义格式字符串中,#表示显示数字(如果存在),并且0表示始终显示某些内容,并将0作为占位符.

所以在你的情况下,你需要这样的东西:

=Format(Fields!CUL1.Value, "#,##0.##")
Run Code Online (Sandbox Code Playgroud)

这句话:显示2 DP(如果存在),非零部分始终显示最低部分,并使用,作为分组分隔符.

这就是它对你的数据的看法(我已经添加了一个很大的值以供参考):

在此输入图像描述

如果你对分离数千,数百万等不感兴趣,那就像#0.##Paul-Jan建议的那样使用.

自定义数字格式字符串的标准文档是您最好的参考.

  • 我已经使用格式为`= Format(Fields!CUL1.Value,"#,## 0.00")`将小数位添加为.00`如果整数通过(例如:35或35.00). (2认同)

Raj*_*Raj 9

如果你想在十进制之后总是显示一些值,例如"12.00""12.23" 然后使用如下所示,它对我有用

FormatNumber("145.231000",2)这将显示145.23

FormatNumber("145",2)这将显示145.00


dvd*_*hns 6

Format(Fields!CUL1.Value, "0.00")因为@abe建议他们想要显示0.00,所以会更好地工作,如果值为0,则"#0.##"显示"0".