今天程序报了一个错误:
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
对应程序:
BigDecimal b1 = new BigDecimal(12500);
BigDecimal b2 = new BigDecimal(1500);
System.out.println(b1.divide(b2));
原因是忘记加小数位的精度了,导致除不尽,出现无限循环小数,解决:
BigDecimal b1 = new BigDecimal(12500);
BigDecimal b2 = new BigDecimal(1500);
System.out.println(b1.divide(b2, 3, BigDecimal.ROUND_HALF_UP));