【发布时间】:2021-12-07 03:23:05
【问题描述】:
当我需要使用 BigDecimal 时如何在不损失精度的情况下获得正确答案。
BigDecimal a = new BigDecimal(0.5);
BigDecimal b = new BigDecimal(30);
BigDecimal c = new BigDecimal(18000);
a.divide(b).multiply(c);
在这种情况下,我怎样才能得到准确的 300?
谢谢!
【问题讨论】:
-
只需重新排列方程,因为四舍五入会丢失精度
c.divide(b).multiply(a) ==> 300.0 -
或者您可以在 github 上找到并使用其中一个 BigRational 类。
标签: java precision bigdecimal