-6

私はこのJavaScriptコードを持っています:

var id = $(this).attr("class");

var productname = $("td[title='product"+id+"']").html();
var newproductname = parseFloat(productname);

HTML:

<td class='drinkName' title='product10'>fanta</td>

newproductname の出力はファンタではなく NaN です...何が問題ですか? 製品名を出力したい。

4

3 に答える 3

5

数じゃないからfantao_O

于 2013-08-25T13:14:53.683 に答える
3

parsefloat は 2.2 や 5 などの数値を想定しています。fanta は数値ではないNANため、not a number

于 2013-08-25T13:14:54.283 に答える
2

これは、有効な数字を持たない文字列を解析しようとしているためです。したがって、数値に変換することはできません。parseFloatが戻ってくるのはそのためですNaN

への引数は、parseFloat常に有効な数字を含む文字列でなければなりません。fanta数値が含まれていないため、浮動小数点値に変換することはできません。

このドキュメントから-

parseFloat はトップレベルの関数であり、どのオブジェクトにも関連付けられていません。

parseFloat はその引数である文字列を解析し、浮動小数点数を返します。記号 (+ または -)、数字 (0 から 9)、小数点、または指数以外の文字が検出された場合、そのポイントまでの値を返し、その文字と後続のすべての文字を無視します。先頭と末尾のスペースは許可されています。

最初の文字を数値に変換できない場合、parseFloat は NaN を返します。

算術目的で、NaN 値は基数の数値ではありません。isNaN 関数を呼び出して、parseFloat の結果が NaN かどうかを判断できます。NaN が算術演算に渡されると、演算結果も NaN になります。

次の例はすべて戻ります3.14-

parseFloat("3.14");
parseFloat("314e-2"); 
parseFloat("0.0314E+2");
parseFloat("3.14more non-digit characters");

次の例は次を返しますNaN-

parseFloat("FF2");
于 2013-08-25T13:15:41.610 に答える