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

时间:2014-01-17 13:48:23

标签: service reporting-services reporting

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

例如。 使用表达式

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

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

感谢。

6 个答案:

答案 0 :(得分:50)

试试这个

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

答案 1 :(得分:46)

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

因此,在您的情况下,您将需要以下内容:

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

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

这是它在数据上的显示方式(我添加了一个大值以供参考):

enter image description here

如果您对分离数千,数百万等不感兴趣,请使用Paul-Jan建议的#0.##

Custom Numeric Format Strings的标准文档是您最好的参考资料。

答案 2 :(得分:9)

如果您希望始终在小数点后显示某些值,例如“12.00”“12.23” 然后像下面一样使用,它对我有用

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

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

答案 3 :(得分:6)

Format(Fields!CUL1.Value, "0.00")会更好用,因为@abe表示他们想要展示0.00,如果值为0,则"#0.##"会显示"0"

答案 4 :(得分:1)

实际上,我需要以下内容...除去小数而不进行舍入,因此“12.23”需要显示为“12”。在SSRS中,请勿将数字格式化为百分比。保留格式为默认格式(未应用格式),然后在表达式中执行以下操作:= Fix(Fields!PctAmt.Value*100))

将数字乘以100,然后在SSRS中应用FIX函数,该函数仅返回数字的整数部分。

答案 5 :(得分:1)

请尝试以下代码段,

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

希望它会有所帮助,谢谢你。