我有两个BigDecimal
s,我想根据它们的有效数字确定它们是否接近。
例如,考虑以下情况:
BigDecimal million = new BigDecimal(1_000_000);
BigDecimal tenmillion = new BigDecimal(10_000_000);
BigDecimal a = new BigDecimal("55.89").multiply(million);
BigDecimal b = new BigDecimal("55.88").multiply(million);
BigDecimal c = new BigDecimal("55.88").multiply(tenmillion);
我希望能够确定a
并且b
接近(但事实c
并非如此),因为它们仅相差一位有效数字,即使在原始数字中它们被数千分开。确定这一点的最佳方法是什么?
例如,可以用 替换最低有效数字0
,但是这样会55.81 == 55.89
在离开时产生,55.89 != 55.90
因此这显然不是一个正确的解决方案。