java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result

当使用BigDecimal进行divide除法运算的时候,有时会出现除不尽的现象,因此回报上面的错误,我原来的代码是

BigDecimal divide = decimal.divide(new BigDecimal(format1));

通过观察BigDecimal的重在方法发现,还可以传入精度参数roundingModel
所以,代码可以写成这样

BigDecimal divide = decimal.divide(new BigDecimal(format1),2);

此处的“2”就是四舍五入后精确到小数点后两位,这样就不会出现除不尽的bug了

你可能感兴趣的:(java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal)