数学的に未定義な演算が行われると、NAN が返されます。
たとえば関数に渡されるパラメータに、範囲外の値が渡されたときが該当します。
平方根(sqrt) は、正の数値の場合にのみ定義されるので、負の数を渡すと結果は NAN になります。
NAN が返される他の例としては、INF の値を INF で割った場合や、
既に NAN とわかっている値と演算をした場合が挙げられます。
注意:
Not A Number という名前が付いていますが、NAN は float 型の値として正しい値です。
警告
NAN は、NAN と等しい値として比較できません。
浮動小数点数の値が NAN かを判定するには is_nan を使わなければいけません。
コード $float === NAN は動作しません。