下面的代码将 1620 除以 100,得到的结果是 16.00,而不是预期值 16.20。
MathContext mc = new MathContext(2, RoundingMode.HALF_EVEN);
BigDecimal num = new BigDecimal("1620").setScale(2, RoundingMode.HALF_EVEN);
BigDecimal divider = new BigDecimal(100).setScale(2,RoundingMode.HALF_EVEN);
BigDecimal result = num.divide(divider, mc).setScale(2, RoundingMode.HALF_EVEN);
打印出上面我得到的值
编号:1620.00 分频器 100.00 结果:16.00
如果我将 MathContext 中的精度更改为 4,我会得到 16.20 的结果,但为什么呢?MathContext 中的精度是否为 2 不会导致 16.20?