Compruebe dos valores float / double para la igualdad exacta

¿Cuál es una manera elegante, legible y no verbosa de comparar dos valores de punto flotante para una igualdad exacta?

Tan simple como puede sonar, es un problema perverso. los== el operador no hace el trabajo para NaN y también tiene un tratamiento especial para cero:

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

Pero quiero determinar si dos valores son exactamente iguales (pero lo hagono cuidar diferentes patrones de NaN, por lo que cualquier NaN == cualquier otro NaN -> verdadero).

I puede haz esto con este código de Monster feo:

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

¿Hay una mejor manera de escribir esto (y hacer la intención obvia)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta