Я выполняю простое умножение с BigDecimal, и я обнаружил какое-то странное поведение при умножении на ноль (умножение на ноль правильное в этом случае).
Базовая математика говорит мне, что все, что умножается на ноль, будет равно нулю (см. Свойство нулевого продукта и Свойства умножения)
Однако следующий код будет последовательно терпеть неудачу с той же ошибкой:
assertEquals(new BigDecimal(0), new BigDecimal(22.3).multiply(new BigDecimal(0)));
java.lang.AssertionError: Expected :0 Actual :0E-48
Является ли это неточностями с BigDecimal или есть какая-то нишевая ветвь математики, которую я где-то не хватает?
Примечания: JDK 1.6.0_27 работает в IntelliJ 11