is_nan

浮動小数点数の値が、非数かどうかを調べる

説明

bool is_nan(float $num)

指定された num が、NAN (Not A Number) であるかどうかを返します。

数学的に未定義な演算が行われると、NAN が返されます。 たとえば関数に渡されるパラメータに、範囲外の値が渡されたときが該当します。 平方根(sqrt) は、正の数値の場合にのみ定義されるので、負の数を渡すと結果は NAN になります。 NAN が返される他の例としては、INF の値を INF で割った場合や、 既に NAN とわかっている値と演算をした場合が挙げられます。

注意:

Not A Number という名前が付いていますが、NANfloat 型の値として正しい値です。

警告

NAN は、NAN と等しい値として比較できません。 浮動小数点数の値が NAN かを判定するには is_nan を使わなければいけません。 コード $float === NAN は動作しません。

パラメータ

num

調べる float の値。

戻り値

numNAN の場合、true を返します。そうでない場合、false を返します。

例1 is_nan の例

<?php
$nan = sqrt(-1);

var_dump($nan, is_nan($nan));
?>

上の例の出力は以下となります。

float(NAN)
bool(true)

参考

  • is_finite
  • is_infinite