上网查了一下这个异常的原因,找到了原因所在:通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
at java.math.BigDecimal.divide(BigDecimal.java:1616)
解决的办法就是给divide方法设置精确的小数点,API
divide(divisor, roundingMode)
如:divide(xxxxx,2)。