有人可以解释为什么这两个有不同的结果?
BigDecimal bd1 = new BigDecimal(1234.5678)
.divide(
new BigDecimal(1.19),
4,
RoundingMode.CEILING
);
BigDecimal bd2 = new BigDecimal(1234.5678)
.divide(
new BigDecimal(1.19),
new MathContext(4, RoundingMode.CEILING)
);
Result :
bd1: 1037.4520
bd2: 1038
1 回答
因为在
MathContext(4, RoundingMode.CEILING)
中,4是精度,但在.divide(new BigDecimal(1.19), 4, RoundingMode.CEILING);
中,4是比例 . 你可以看到"precision"和"scale" here之间的区别所以,如果你改变第二个
你有相同的结果: