Macromedia Flash非公式テクニカルノート 値がNaNかを調べる
Platform: All 数値の演算などで適切な値が得られない場合には、'NaN'(Not a Number)が返ります。 ある値が'NaN'かどうかを調べる方法について、ご説明します。 1. 等価演算子(==)による評価 'NaN'は、等価演算子で評価することができません。評価した結果は、以下のようになります。なお、この結果はJavaScriptでも同様です。 trace (NaN == NaN); これは、'NaN'が順序付けされない(unordered)という性質によるものです。 そのため、'NaN'と他の値との('NaN'同士を含む)比較では、不等価演算子'!='は'true'、等価演算子'=='は'false'を返します。もっとも、大小比較の演算子('<'、'>'、'<='、'>=')による比較につきましては、JavaScript(すべて'false'を返します)と異なり、整合性のある結果を返さないようです。 2. isNaN関数による評価 演算子による評価ができないために、用意された関数が'isNaN'です。引数を評価し、値が数値でない場合には、'true'を返します(詳しくは「ActionScript辞書」をご参照ください)。 もっとも、'isNaN'関数は値としてストリングを渡したときも、'true'を返します。これを除外するには、併せて'typeof'演算子でデータ型を評価する必要があります。
typeof(NaN)は、"number"になります。 以下は、'NaN'のみを'true'と評価する関数のサンプルです。 function xIsReallyNaN (n) { _____ 作成者: 野中文雄 © 2001 and beyond Fumio Nonaka All rights reserved. |
|||