2004-05-18 [長年日記]

[Java] Double.NaN == Double.NaN は 偽

JUnitを理解させるためのサンプルアプリケーションにいいものはないか、と探してて、こんなのにぶちあたった。

言われてみればそうなんだけど、字面だけ見ると意外。Doubleという名前のクラスじゃなければ、ついうっかりやってしまいそうだ。

Double.POSITIVE_INFINITY == Double.POSITIVE_INFINITY は 真。

Double.longBitsToDouble(0x7ff8000000000000L) ==

Double.longBitsToDouble(0x7ff8000000000000L) は 偽。

See Also:IEEE 754MSDNJDK1.0 APIJDK1.4 API*1、via javadocs.org

*1 消さなくてもいいのに。

[]