使用 BigDecimal 做除法的时候,会有两种情况出现:
一、能够整除
程序正常执行,无错误。
二、不能整除
程序报错。
异常信息如下:
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
解决方案
不能整除时,需加上精度 或 round的模式
代码如下:
BigDecimal a = new BigDecimal(2);
BigDecimal b = new BigDecimal(3);
BigDecimal c = a.divide(b,2); //精度
BigDecimal a = new BigDecimal(2);
BigDecimal b = new BigDecimal(3);
BigDecimal c = a.divide(b,BigDecimal.ROUND_DOWN); //round的模式