【问题标题】:Strip decimals in SSRS expression without rounding去除 SSRS 表达式中的小数而不四舍五入
【发布时间】:2016-03-29 20:05:56
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: reporting-services ssrs-2008 ssrs-2008-r2


    【解决方案1】:

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

    =Floor(Fields!Number.Value)
    

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

    根据 cmets 中的请求进行更新 如果你想在小数点后得到同样的结果,你只需要一点代数。

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

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

    【讨论】:

    • 谢谢。你知道我怎么能四舍五入到最接近的小数位吗?例如,99.46 将向下舍入为 99.40
    • 我也编辑了我的答案来解决这个问题。如果这一切都适合你,请标记为答案。谢谢!
    【解决方案2】:

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

    =Int(98.56)
    

    【讨论】:

      【解决方案3】:

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

      虽然 FLOOR 和 CEILING 如果您采取额外措施来处理数字 =0,则很好,但简单地去除小数的最简单方法是使用

      =Fix(Fields!Number.Value)
      

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

      来源:Examples for Fix, Floor and Ceiling

      来源:Difference between Int and Fix

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-24
        • 1970-01-01
        • 1970-01-01
        • 2019-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多