以下のコードは、1620 を 100 で割り、期待値 16.20 ではなく 16.00 という結果を取得します。
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 にならないのでしょうか?