BigDecimal から奇妙な動作が見られます mathContext を使用して除算を行うと、スケールと丸めモードを直接指定して除算を行う場合とは出力が異なります 同じ出力を提供する必要があると思われる例を次に示します
public static void main(String...args){
MathContext mc = new MathContext(3,RoundingMode.HALF_UP);
BigDecimal four = new BigDecimal(4);
BigDecimal three = new BigDecimal(3);
System.out.println(four.divide(three,3,RoundingMode.HALF_UP));
System.out.println(four.divide(three,mc));
}
出力:
1.333
1.33
MathContext を使用すると、スケールの扱いが異なるようです。または、いつどれを使用するかわかりません。