【异常】java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

异常原因:没有指定数据精度导致数据运算无法正常结算

如执行下面的除法:

int value = BigDecimal.valueOf(211111).divide(BigDecimal.valueOf(3)).intValue();

指定精度后就可以了:

int value = BigDecimal.valueOf(210000).divide(BigDecimal.valueOf(3), 2, BigDecimal.ROUND_HALF_UP).intValue();

猜你喜欢

转载自www.cnblogs.com/756623607-zhang/p/11755747.html