ParseFloat输出是NaN

时间:2013-08-25 13:13:03

标签: javascript

我有这个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而不是fanta ...有什么问题? 我希望将productname作为输出。

3 个答案:

答案 0 :(得分:4)

因为fanta不是数字o_O

答案 1 :(得分:3)

parsefloat预计会有2.2或5这样的数字。因此fanta不是一个数字NAN代表not a number

答案 2 :(得分:2)

这是因为您正在尝试解析没有有效数字的字符串。因此,它无法转换为数字。这就是parseFloat返回NaN的原因。

parseFloat的参数必须始终是包含有效数字的字符串。您无法将fanta转换为浮点值,因为它中没有数字。

documentation -

开始
  

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");