Non-terminating decimal expansion; no exact representable decimal result.
BigDecimal同士で割り算をした時に「java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.」といった例外が発生した。
14 / 6 = 2.33333...と、循環小数になってしまうので、正確に表現できないと文句を言っているらしい。
BigDecimal d1 = new BigDecimal(14); BigDecimal d2 = new BigDecimal(6); BigDecimal d3 = d1.divide(d2);
要件として小数点1桁で四捨五入をすることになっているので、割り算の時に丸め処理も行うことで、この例外は回避された。
BigDecimal d3 = d1.divide(d2, 2, BigDecimal.ROUND_HALF_UP);//四捨五入
BigDecimalで割り算をしているところを再度点検しなくては。