【Java】BigDecimal中的divide方法报错,Exception in thread "main" java.lang.ArithmeticException:

时间:2024-03-29 14:38:30

一、问题

在使用BigDecimal做除法时,报错如下:

Exception in thread “main” java.lang.ArithmeticException:
Non-terminating decimal expansion; no exact representable decimal
result.

【Java】BigDecimal中的divide方法报错,Exception in thread "main" java.lang.ArithmeticException:

二、解决办法:

【Java】BigDecimal中的divide方法报错,Exception in thread "main" java.lang.ArithmeticException:

三、原因

1、divide如果做整除,没有报错;
【Java】BigDecimal中的divide方法报错,Exception in thread "main" java.lang.ArithmeticException:
2、如果除不尽,divide没有自动处理无限小数的机制,必须要你手动设置,所以,上面的例子的解决办法就是设置小数点精度和进位模式;scale表示精度,RoundingMode表示进位模式;