我有两个BigDecimal变量,名为Actual和Budgeted。我将Actual除以Budgeted得到一个百分数。
但问题在于,当我创建单元测试并尝试确认结果是否为0.1时,使用equals(new BigDecimal(.1))会因为双精度浮点数的精度问题导致失败。
我的解决方法是创建两个BigDecimal称为ten和hundred,将这两个数相除,并用其进行测试。这样,我只使用固定点数,我的计算应该完全准确。
那么我的问题是:是否有更好的解决方法?
但问题在于,当我创建单元测试并尝试确认结果是否为0.1时,使用equals(new BigDecimal(.1))会因为双精度浮点数的精度问题导致失败。
我的解决方法是创建两个BigDecimal称为ten和hundred,将这两个数相除,并用其进行测试。这样,我只使用固定点数,我的计算应该完全准确。
那么我的问题是:是否有更好的解决方法?