好的,所以我正在尝试除以 2 个随机 BigDecimal 值。如果数字不均匀或不规则而不是取余数,我宁愿将它四舍五入到最接近的整数。但是,当我这样做时,我的网站崩溃了,并且出现以下错误。
引起:java.lang.ArithmeticException:非终止十进制扩展;没有可精确表示的小数结果。
如果我没有四舍五入数字,我会理解这种情况的发生,但因为我已经四舍五入,所以我不明白为什么会这样。
BigDecimal cartQty= (testValue1).getQuantity().getValue();
BigDecimal cartMultiplier = (testValue2).getQuantity().getValue();
//below where it crashes so if 4/3 and the value is 1.333 I'd expect to get 2.
BigDecimal TotalPackageInt= cartQty.divide(cartMultiplier ).setScale(0, RoundingMode.UP);
最佳答案
告诉 BigDecimal
在进行除法
时您希望如何舍入。像这样:
BigDecimal TotalPackageInt= cartQty.divide(cartMultiplier, 0, RoundingMode.UP );
关于java - 为什么我已经四舍五入了,却得到了一个不终止的十进制扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38337991/