SSRS表达式中的小数位小数而不进行舍入

问题描述 投票:1回答:3

在我的报告中,我试图删除小数而不进行舍入。我将使用它来设置面积图垂直轴的最小值。

所以我尝试了=Format(98.56, "N0"),但这会返回99,这是不正确的。它应该返回98。

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

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

谢谢

reporting-services ssrs-2008 ssrs-2008-r2
3个回答
3
投票

尝试使用“地板”。它有效地向下舍入到最接近的整数。你会在数学函数下找到它。

=Floor(Fields!Number.Value)

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

根据注释中的请求进行更新如果您想在小数点后获得相同的结果,那么您只需要一点代数。

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

这应该将99.46变成99.4。鉴于它削减了剩余部分,你可以随时添加你想要的任何额外的零。


0
投票

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

=Int(98.56)

0
投票

我知道这个问题很老了,但是我最后在这里有同样的问题,我想分享一下我的答案:

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

=Fix(Fields!Number.Value)

FIX仅返回数字的整数部分,不进行任何舍入或转换。对于负数Int整理。

资料来源:Examples for Fix, Floor and Ceiling

资料来源:Difference between Int and Fix

© www.soinside.com 2019 - 2024. All rights reserved.