Цитата из Effective Java - второе издание Джошуа Блоха
Для полей с плавающей точкой используйте Double.compare или Float.compare вместо реляционных операторов, которые не подчиняются общему контракту для compareTo при применении к значениям с плавающей запятой.
Он не уточняет, почему это так.
Итак, мой вопрос:
Каким образом реляционные операторы не могут выполнить общий контракт для compareTo при использовании с значениями с плавающей запятой?