去除 SSRS 表达式中的小数点而不进行舍入

Strip decimals in SSRS expression without rounding

在我的报告中,我试图在不四舍五入的情况下删除小数。我将使用它来设置面积图垂直轴上的最小值。

所以我尝试了 =Format(98.56, "N0"),但是这个 returns 99,这是不正确的。应该 return 98.

我一直在专门搜索 SSRS,但大多数结果都是针对 tsql 的。

我的问题:如何在不四舍五入的情况下删除 SSRS 中的小数?

谢谢

尝试使用 "Floor"。它有效地向下舍入到最接近的整数。您会在数学函数下找到它。

=Floor(Fields!Number.Value)

请注意,Transact-SQL 中还有一个 Floor 函数,如果您需要在 SQL 脚本中进行某些处理,它的工作方式相同。

根据评论中的要求更新 如果你想在小数点后得到相同的结果,你只需要一点代数。

=Floor((Fields!Number.Value*10))/10

那应该把 99.46 变成 99.4。鉴于它削减了其余部分,您可以添加任何您想要的额外零。

我最终转换为 Int。 SSRS中的以下表达式 returns 98:

=Int(98.56)

我知道这个问题很老了,但由于我在这里遇到了同样的问题,所以我想分享我的答案:

虽然 FLOOR 和 CEILING 如果您采取额外措施来处理数字 <0 或知道它们总是 >=0 就可以了,但简单地去除小数点的最简单方法是使用

=Fix(Fields!Number.Value)

仅修复 returns 数字的整数部分,不进行任何舍入或转换。对于负数 Int 向上舍入。

来源:Examples for Fix, Floor and Ceiling

来源:Difference between Int and Fix