倍精度浮動小数点数(double)の構成要素は ・符号:1bit ・指数:11bit ・仮数:52bit なので「うまいこと計算する」とdoubleと64bitの相互変換は可能です。 ところが、double で表現可能な nan というやつがいて、 これは特定のビットパターンを持っているのだけど nan に対してはさっきの「うまいこと計算する」ことができなくなってしまいます。 例えば nan<0 も nan>0 も 0 になるし sgn(nan) も sign(-nan) も 1 になるし nan*2.0 や nan/2.0 はやっぱり nan だし。