【发布时间】:2018-01-16 22:58:33
【问题描述】:
我需要将 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.45,因为 1.454999 低于 1.455,所以没有“一半”可以四舍五入。您可能想要 ROUND_UP。或者分两步进行:首先将比例设置为 3,得到 1.455,然后再次将其四舍五入到比例 2。
标签: groovy rounding bigdecimal