Почему мы не можем использовать '==' для сравнения двух чисел с плавающей запятой или двойных чисел [дубликата]

На этот вопрос уже есть ответ:

Test для равенства с плавающей точкой. (FE_FLOATING_POINT_EQUALITY) 3 ответа Почему Double.NaN == Double.NaN возвращает false? 9 ответов

Я читаю Эффективную Java от Джошуа Блоха и в Пункт 8: подчиняться генеральному контракту, когда переопределение равно, это утверждение написано

для полей с плавающей запятой используйте метод Float.compare; а для двойных полей используйте Double.compare. Специальная обработка полей с плавающей точкой и двойных полей необходима благодаря существованию Float.NaN, -0.0f и аналогичных двойных констант;

Может кто-нибудь объяснить мне пример, почему мы не можем использовать== для поплавка или двойного сравнения

Ответы на вопрос(3)

Ваш ответ на вопрос