Javascript浮点+浮点=字符串?
Posted
技术标签:
【中文标题】Javascript浮点+浮点=字符串?【英文标题】:Javascript Float + Float = String? 【发布时间】:2016-01-03 04:14:41 【问题描述】:当我运行它时,它返回NaN
。如果我不解析浮动,我会添加 2 个字符串。我错过了什么?我会说我的结果应该始终是浮点数?
function calculate(i)
var result = 0.0;
$j(".t" + i + " input").each(function ()
var number = $j(this).val();
number = number.replace(",", ".");
if (parseFloat(number) != NaN)
result = parseFloat(result);
number = parseFloat(number);
result += number;
);
console.log(result);
return result;
【问题讨论】:
没有值等于NaN
。永远。
添加 html 可能会有所帮助(以及输入字段中的值)。
【参考方案1】:
您没有正确验证不是数字。要检查数字是否为 NaN
,请使用 isNaN
函数:
if (!isNaN(parseFloat(number))) ...
注意NaN === NaN
总是返回false
。
您可以在此处阅读更多信息:Why is NaN === NaN false?
完整代码如下:
function calculate(i)
var result = 0;
$j(".t" + i + " input").each(function ()
var number = $j(this).val();
number = parseFloat(number.replace(",", "."));
if (isNaN(number))
return;
result += number;
);
console.log(result);
return result;
【讨论】:
你打错了(!isNanN(
应该是(!isNaN(
对吧?
非常欢迎 :) 简单的错误。我知道有些东西看起来不合适,我必须仔细观察才能注意到它。
现在工作。非常感谢! :) 已接受答案。以上是关于Javascript浮点+浮点=字符串?的主要内容,如果未能解决你的问题,请参考以下文章