値がNaN値(非数)かどうか判定するには、Double.IsNaN() を使用します。
サンプル
例)NaN値かどうか判定する
//NaN値を生成する
double val = Double.NaN;
//valがNaN値かどうか判定する
if (Double.IsNaN(val))
{
Console.WriteLine("値はNaN値です。");
}
else
{
Console.WriteLine("値はNaN値ではありません。");
}
結果
値はNaN値です。
参考までによくやりがちなNGな例が以下です。
ダメな例)NaN値かどうか判定する
//NaN値を生成する
double val = Double.NaN;
//NaN値かどうか判定する
if (val == Double.NaN){
}
「==」の判定ではNaN値は正しく判定できないのでご注意ください。
備考
- C#でNaN値を表す定数は、Double.NaNです。
- NaN値は「==」判定演算子では正しく判定できません。
Double.IsNaNをご使用ください。