【问题标题】:Issue with Round function in ssrsssrs 中的 Round 函数问题
【发布时间】:2011-12-15 22:30:51
【问题描述】:

当我使用表达式使用 Round 函数时,我在 SSRS 中遇到问题

我需要将值向下舍入,但始终向上

我有以下表达式 3 - (4 *.32) = 1.72 使用回合(3 - (4 *.32)) 我总是得到 2 但我需要得到 1

我用什么不好?

谢谢

【问题讨论】:

    标签: reporting-services ssrs-2008


    【解决方案1】:

    如果您只需要获取一个整数,请尝试强制转换为 int,它应该始终向上舍入到最接近的整数,其他使用 Math.Round()

    http://msdn.microsoft.com/en-us/library/aa340227(v=VS.71).aspx

    【讨论】:

      【解决方案2】:

      round(3 - (4 *.32),0,1) 将舍入到小数点后 0 位,1 表示向下舍入。您还可以对 int 进行快速而肮脏的强制转换,这将始终占据发言权。

      【讨论】:

      • 我正在使用表达式 Round(Fields!NoNFF.Value - (Fields!NoSTUSwapped.Value * 0.32), 0, 1) 但我收到错误 Overload resolution failed because no accessible 'Round'可以在没有缩小转换的情况下调用....缺少什么!!!
      • 不知道 Fields!NoNFF.Value 的类型,您需要转换表达式“Fields!NoNFF.Value - (Fields!NoSTUSwapped.Value * 0.32)”,可能使用 Decimal.Round (CDec(Fields!NoNFF.Value - (Fields!NoSTUSwapped.Value * 0.32)), 0,1)
      • 这仍然没有得到我想要的结果..我再次解释...如果我的值是 3 - (4 *.32) = 1.72 我想显示值 1. 没有十进制值。 ..我想用round,但也许我错了,还有其他功能或方法可以得到我的结果
      【解决方案3】:

      Int(3 - (4 *.32))会给你1

      将其设为int 将始终“向下取整”,它既快速又简单,但不一定是最佳解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-21
        • 2012-07-03
        相关资源
        最近更新 更多