问题描述:
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
问题分析:
1、使用BigDecimal.divide()方法时,只传了一个参数导致不能整除会无限循环小数导致报错。
BigDecimal num1 = new BigDecimal(3);
BigDecimal num2 = new BigDecimal(1);
num2.divide(num1).doubleValue();
解决办法:
使用BigDecimal.divide(BigDecimal divisor, int scale, int roundingMode)方法。
BigDecimal num1 = new BigDecimal(3);
BigDecimal num2 = new BigDecimal(1);
num2.divide(num1,4,BigDecimal.ROUND_UP).doubleValue();//0.3334