BigDecimal进行除法运算报错:ArithmeticException: Non-terminating decimal expansion; no exact representable de

使用BigDecimal进行除法运算时,突然报错

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

经过排查发现,是由于在进行除法运算时,如果结果是个无限小数,就会报这个错,解决办法就是,在使用divide()方法时,指定保留小数的位数:divide(fileWidth,BigDecimal.ROUND_HALF_UP)

BigDecimal llyRate = lly.divide(fileWidth,BigDecimal.ROUND_HALF_UP).setScale(3, RoundingMode.HALF_UP);

这样即可解决问题

你可能感兴趣的:(java)