可能性の重複の場合:
Checking if a double (or float) isnan
in C++テストFloat値がNaN
フロートがNaN
であれば、私がチェックする必要があります。いくつかのリンクを調べることで、私は最も一般的なチェックを見つけました。
FLOAT32 f32_test_NaN = (some_value);
if (f32_test_NaN == f32_test_NaN)
{
//do something;
}
else
{
// do something;
}
しかし、これは私にとってはうまくいかないようです。次のように私のコードは次のとおりです。GDBの
FLOAT32 test_NaN = 0x414570A3;//some value - is this ok?
デバッグ:
(gdb) p test_NaN
$1 = 1.09506982e+09
(gdb) p/x test_NaN
$2 = 0x41457080 // Hex is not same as init value - What is compiler doing?
だから私の場合test_NaN
はtest_NaN
に等しいです。
コンパイラの設定が必要かどうかお知らせください。私はsolarisで走っています。または、それを確認する他の方法がありますか?
ありがとうございます。
http://stackoverflow.com/questions/570669/checking-if-a-double-or-float-is-nan-in -c –
なぜisnan()をmath.hから使用しないのですか?特別な理由はありますか? – Constantin
この標準機能は、環境では使用できません。 – kp11