演算

[C#] NaN値かどうか判定する(Double.IsNaN)

2021年4月25日

値が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をご使用ください。

関連サイト

-演算
-,