I am performing a simple multiplication with BigDecimal and I have found some strange behaviour when multiplying by zero (multiplying by zero is correct in this use-case).
Basic maths tells me that anything multiplied by zero will equal zero (see:Zero Product Property and Multiplication Properties)
However, the following code will consistently fail with the same error:
assertEquals(new BigDecimal(0), new BigDecimal(22.3).multiply(new BigDecimal(0)));
java.lang.AssertionError: Expected :0 Actual :0E-48
Is this an inaccuracy with BigDecimal or is there some niche branch of maths that I'm missing somewhere?
Notes: JDK 1.6.0_27 running in IntelliJ 11