BigDecimalを使用して単純な乗算を実行していますが、ゼロを乗算すると奇妙な動作が見られます(このユースケースではゼロを乗算するのが正しいです)。
基本的な数学では、ゼロを掛けたものはすべてゼロに等しくなることがわかります(ゼロ積プロパティと乗算プロパティを参照) 。
ただし、次のコードは常に同じエラーで失敗します。
assertEquals(new BigDecimal(0), new BigDecimal(22.3).multiply(new BigDecimal(0)));
java.lang.AssertionError: Expected :0 Actual :0E-48
これはBigDecimalの不正確さですか、それとも私がどこかに欠けている数学のニッチな分野がありますか?
注:IntelliJ11で実行されているJDK1.6.0_27