The following code:
 BigDecimal a = new BigDecimal("8900");
 BigDecimal b = new BigDecimal("8.9E+3");
 System.out.println(a.equals(b));
prints false. Why is so, if mathematically those numbers are equal?
The following code:
 BigDecimal a = new BigDecimal("8900");
 BigDecimal b = new BigDecimal("8.9E+3");
 System.out.println(a.equals(b));
prints false. Why is so, if mathematically those numbers are equal?
You have to use compareTo():
BigDecimal a = new BigDecimal("8900");
BigDecimal b = new BigDecimal("8.9E+3");
System.out.println(a.compareTo(b) == 0);