Оператор равенства для нулей (BigDecimal / Double) в Java

Несколько интересных наблюдений относительно оператора равенства для 0 и 0,0

  1. new Double(0.0).equals(0)возвращает false, а new Double(0.0).equals(0.0)возвращает true

  2. BigDecimal.ZERO.equals(BigDecimal.valueOf(0.0))возвращает false, а BigDecimal.ZERO.equals( BigDecimal.valueOf(0))возвращает true.

Похоже, сравнение строк выполняется в обоих случаях. Кто-нибудь может пролить свет на это.

Спасибо.

35
задан Manish Mulani 3 April 2012 в 11:06
поделиться