Почему мы не можем использовать '==' для сравнения двух чисел с плавающей запятой или двойных чисел [дубликата]
На этот вопрос уже есть ответ:
Test для равенства с плавающей точкой. (FE_FLOATING_POINT_EQUALITY) 3 ответа Почему Double.NaN == Double.NaN возвращает false? 9 ответовЯ читаю Эффективную Java от Джошуа Блоха и в Пункт 8: подчиняться генеральному контракту, когда переопределение равно, это утверждение написано
для полей с плавающей запятой используйте метод Float.compare; а для двойных полей используйте Double.compare. Специальная обработка полей с плавающей точкой и двойных полей необходима благодаря существованию Float.NaN, -0.0f и аналогичных двойных констант;
Может кто-нибудь объяснить мне пример, почему мы не можем использовать==
для поплавка или двойного сравнения