C++ で double (または float) が NaN かどうかを確認する 質問する

C++ で double (または float) が NaN かどうかを確認する 質問する

isnan() 関数はありますか?

追伸:参加しますミンGW(それが何か違いを生むならば)。

私は、最初に使用していた<math.h>には存在しない のisnan() を使用することでこの問題を解決しました。<cmath>#include

ベストアンサー1

IEEE 標準によれば、NaN 値には、それを含む比較が常にfalse になるという奇妙な特性があります。つまり、float 型 f の場合、f が NaN の場合にのみf != ftrue になります。

以下のコメントで指摘されているように、すべてのコンパイラがコードを最適化するときにこれを尊重するわけではないことに注意してください。

IEEE 浮動小数点を使用すると主張するコンパイラであれば、このトリックは機能するはずです。ただし、実際に機能するかどうかは保証できません。疑わしい場合は、コンパイラに確認してください。

おすすめ記事