BigDecimal bd1 = new BigDecimal(8757).divide(new BigDecimal(12));
我得到以下异常:
Caused by: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
为什么会这样?除法的结果应该是729.75,其具有终止十进制扩展(.75)。
答案 0 :(得分:0)
我发现了问题所在。实际执行的代码如下:
public class ClassA {
public static final BigDecimal BD2= new BigDecimal(12);
}
public ClassB {
public static final BigDecimal BD1 = new BigDecimal(8757);
public static final BigDecimal RESULT = BD1.divide(ClassA.BD2);
}
调用BD2
方法时未初始化 divide()
(我使用断点检查过)。但是,我仍然认为存在一个错误,因为它不应该在这种情况下抛出此异常,这与发生的事情完全无关。我想BD2
在调用divide()
时为空。