我正在使用 BigDecimal 进行一些计算。最近我遇到了:
java.lang.ArithmeticException:
Non-terminating decimal expansion; no exact representable decimal result.
该问题的答案发布在这里: ArithmeticException:“非终止十进制扩展;没有精确可表示的十进制结果”
这意味着,有一些无限小数的除法,所以 BigDecimal 告诉我它无法准确计算结果。为了避免这种情况,我必须打电话BigDecimal.setScale(SOMETHING, ROUNDING_MODE);
编辑:
现在的问题是将 SOMETHING 设置为最大可能值。我可以使用精度低于 UNLIMITED ( MathContext(precision)
) 的 MathContext,但同样的问题也会发生在那里。下面需要一个值
MathContext.UNLIMITED
...
有谁知道如何做到这一点?
将我的第二个问题移至: 为什么没有 BigDecimal.setPrecision() 方法?
谢谢!
奥利弗