如何使用BigDecimal ROUND_HALF_UP向上舍入1.4549999999999998?

时间:2018-01-16 22:58:33

标签: groovy rounding bigdecimal

我需要将像1.4549999999999998这样的数字舍入到1.46。我正在使用Groovy编写并使用以下方法。

 def roundBigDecimal(bd_val, scale, roundingMode) {
     assert bd_val instanceof BigDecimal
     return new BigDecimal(bd_val).setScale(scale, roundingMode)
}

然而,当我尝试:     roundBigDecimal(1.4549999999999998,2,BigDecimal.ROUND_HALF_UP),我回来1.45。

1 个答案:

答案 0 :(得分:0)

来自BigDecimal docs

  

ROUND_HALF_UP

     

@Deprecated(因为=" 9&#34)

     

改为使用RoundingMode.HALF_UP。

自Java 9以来,该方法已被弃用,解决方法是调用setScale(int, RoundingMode)方法:

roundBigDecimal(1.4549999999999998, 2, RoundingMode.HALF_UP)