В последнее время я написал проект на Java и заметил очень странную функцию с двойной/двойной реализацией. Двойной тип в Java имеет два 0, то есть 0.0 и -0.0 (подписанные ноль). Странно, что:
0.0 == -0.0
принимает значение true
, но:
new Double(0.0).equals(new Double(-0.0))
имеет значение false
. Кто-нибудь знает причину этого?