我有这个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作为输出。
答案 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");