2012-03-01 9 views
0

私が知っている(python、java、php、javascriptなど)すべての言語で、NaNの型はfloat(double)です。 何か理由はありますか?私はIEEE 754 [注::IEEE 754-2008第6章NaNを扱う]では見つかりませんでした。 NaNが内部でfloatとして格納されていても、それは分離型(null/nil/noneに似ています)ではないでしょうか? NaNに別の型を使用する言語はありますか?なぜNaNの型は浮動小数点ですか?

+0

類似している? http://stackoverflow.com/questions/986268/why-is-nan-not-a-number-only-available-for-doubles – Nav

+1

IEEE 754は確かにNaNが何であるかを指定しています。あなたの質問は、間違った前提に基づいているようです。 –

+0

@GregHewgill:そういうわけで私はこの質問をしています。それだけの利便性やトラディションですか? –

答えて

1

NaNは、浮動小数点数に関してはspecific meaningです。言語が独自の値(例えば、NoneNA#N/Aなど)を持つ「意味のない」結果を実装したい場合は、FP操作では使用する言語に関係なく固有のインジケータが必要です。

3

/という浮動小数点除算を考慮してください。かなり明らかに、我々はそれが署名

function/: float x float -> float 

を持つようにしたい。しかし、我々はまた、(標準どおりに)したい

0/0 = NaN 

のでNaNはタイプfloatの値にする必要があります。

関連する問題