使用BigDecimal进行舍入

时间:2014-01-05 11:22:47

标签: groovy bigdecimal

为什么会失败?

assert 1.0G.divide(12.0G, 4, RoundingMode.HALF_UP) == 1.0G.divide(12.0G, new MathContext(4, RoundingMode.HALF_UP))

失败了:


|  Condition not satisfied:

1.0G.divide(12.0G, 4, RoundingMode.HALF_UP) == 1.0G.divide(12.0G, new MathContext(4, RoundingMode.HALF_UP))
     |                                      |       |             |
     0.0833                                 false   0.08333       precision=4 roundingMode=HALF_UP

1 个答案:

答案 0 :(得分:0)

我找到了答案。第一部分:

1.0G.divide(12.0G, 4, RoundingMode.HALF_UP)

使用divide方法的签名比例

BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

但是第二次使用使用精度的MathContext,这是另一回事。