Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Service 用于格式化两位小数的SSRS表达式不显示零_Service_Reporting Services_Reporting - Fatal编程技术网

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

Service 用于格式化两位小数的SSRS表达式不显示零,service,reporting-services,reporting,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) 谢谢 您需要确保始终显示小数点右侧的第一个数字。在自定义

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

例如。 使用的表达式

=Format(Fields!CUL1.Value, "##.##")
如果CUL1.Value为2.5670909,则报告中显示的值为2.56(这太棒了!) 如果CUL1.Value为0.006709,则不显示任何值(我希望它显示0.00) 如果CUL1.Value为0,则不显示任何值(我希望显示0)


谢谢

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

因此,在您的情况下,您需要:

=Format(Fields!CUL1.Value, "#,##0.##")
这句话的意思是:如果存在,则显示2 DP,因为非零部分始终显示最低部分,并使用,作为分组分隔符

这就是它在您的数据上的外观(我也添加了一个很大的值以供参考):

如果您不想分离数千、数百万等,请按照Paul Jan的建议使用
#0.##


此处的标准文档是您的最佳参考。

如果您希望将其作为字符串,请使用:

=格式(字段!CUL1.Value,“F2”)

作为一个数字,请使用:

=FormatNumber(字段!CUL1.Value,2)


这将确保它以数字形式正确导出到excel。

格式(Fields!CUL1.Value,“0.00”)
会工作得更好,因为
@abe
建议他们要显示
0.00
,如果值为0,
“#0”。
会显示
“0”

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

格式编号(“145.231000”,2)
将显示145.23


FormatNumber(“145”,2)
它将显示145.00

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


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

请尝试以下代码段

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

希望能有所帮助,谢谢。

您有具体的舍入要求吗?我希望2.5670909四舍五入到2.57,0.006709四舍五入到0.01,这正是将表达式应用到数据时发生的情况。您是否有效地截断了它们?你能确认一下吗?微软没有对这一点进行适当的记录,但你是否尝试过用“#0.##”来代替?来回答Ian的问题。我没有具体的舍入要求。我只想显示两个小数点。是的,我正在有效地截断该值,但是当该值为0.006709时,不会显示任何内容!它认为值得注意的是,这将值转换为字符串。导出到Excel时,它不再是一个数字。。。转到“属性”窗口(F4)并查找数字,然后输入N2作为格式(或者N0是您不需要小数位数的格式)将在Excel中生成一个数字。使用FormatNumber(Fields!CUL1.Value,2)Instead在使用format()之前必须对我的字段执行CDec(),我在这里使用cDbl时刚刚对我起作用:FormatNumber(Sum(cDbl(Fields!CUL.Value)),2)在使用Format()之前,我必须对我的字段执行CDec()。我使用的格式是
=Format(Fields!CUL1.Value,“#,####0.00”)
,如果传递了整数(例如:35或35.00),则将小数点添加为
.00
。如何使2.5显示为2.50?