Проверьте два значения типа float / double на точное равенство

Что такое элегантный, читаемый и не многословный способ сравнения двух значений с плавающей запятой для точного равенства?

Как бы просто это не звучало, это злая проблема.== оператор не выполняет работу для NaN, а также имеет специальный режим для нуля:

(+0.0 == -0.0) -> true
Double.NaN == Double.NaN -> false

Но я хочу определить, являются ли два значения абсолютно одинаковыми (но яне заботиться о различных шаблонах NaN, поэтому любой NaN == любой другой NaN -> true).

I Можно сделайте это с помощью этого уродливого кода Monster:

Double.doubleToLongBits(a) == Double.doubleToLongBits(b)

Есть ли лучший способ написать это (и сделать намерение очевидным)?

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

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