大十进制乘以零
2022-08-31 16:48:55
我正在用BigDecimal执行一个简单的乘法,我发现在乘以零时有一些奇怪的行为(在这个用例中乘以零是正确的)。
基本数学告诉我,任何乘以零的东西都等于零(参见:零乘积属性和乘法属性)
但是,以下代码将始终失败并出现相同的错误:
assertEquals(new BigDecimal(0), new BigDecimal(22.3).multiply(new BigDecimal(0)));
java.lang.AssertionError: Expected :0 Actual :0E-48
这是BigDecimal的不准确之处,还是我在某个地方错过了一些利基数学分支?
注意:在 IntelliJ 11 中运行的 JDK 1.6.0_27