Ich mache eine einfache Multiplikation mit BigDecimal und ich habe ein seltsames Verhalten bei der Multiplikation mit Null gefunden (Multiplikation mit Null ist in diesem Anwendungsfall korrekt).BigDecimal multiplizieren mit Null
Grund Mathematik sagt mir, dass alles, was von Null multipliziert wird gleich Null sein (siehe: Zero Product Property und Multiplication Properties)
Allerdings wird der folgende Code konsequent mit dem gleichen Fehler fehlschlagen:
assertEquals(new BigDecimal(0), new BigDecimal(22.3).multiply(new BigDecimal(0)));
java.lang.AssertionError: Expected :0 Actual :0E-48
Ist das eine Ungenauigkeit mit BigDecimal oder gibt es einen Nischenzweig der Mathematik, den ich irgendwo vermisse?
Hinweise: JDK 1.6.0_27 in IntelliJ 11
Ja numerische Analyse schauen und insbesondere Annäherung und Abschneidefehler –
Oder in 'double' Sie könnten schreiben 'assertEquals (0, 23.3 * 0, 0);';) –
Und schauen Sie auch in 'BigDecimal.ZERO'. – EJP