BigDecimal做除法时的一个异常

来源:互联网 发布:万维网域名 编辑:程序博客网 时间:2024/05/17 05:04

今天程序报了一个错误:

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));


原创粉丝点击