使用SQL Server Reporting Services,如果数据库中的值为零,则使用以下格式表达式将其转换为---正确到2位小数:
但是,如果值为0.001,并且报告需要显示为2位小数(即应显示0.00),则生成的格式---仍显示在报告中。
有没有办法避免SSRS中的这些舍入问题,如果是这样,新格式/函数/会是什么? 0.001的结果应为0.00。
答案 0 :(得分:3)
这是一个有趣的。我复制了你的结果:
对于最后一列,我在TextBox中使用了以下表达式:
=Switch(Fields!val.Value = 0.0, "---"
, Fields!val.Value > 0.0, Format(Fields!val.Value, "#,0.00")
, Fields!val.Value < 0.0, Format(Fields!val.Value, "(#,0.00);(#,0.00)"))
这会得到您需要的结果。
看起来不错吧?也许......为了在网页上显示或导出为PDF,我觉得这很好,如果讨厌,但是为了导出到Excel,因为你使用的是Format
,所以在报告中显式返回一个字符串,因此将是Excel导出中的字符串,而不是导出为前三列中的数字。
只有您可以说这是否会在您的环境中出现问题。
我认为没有办法绕过SSRS将小数字视为零,因此在文本框中处理它可能是你唯一的选择。