当我运行它时,它返回 NaN
。如果我不 parseFloat,我将添加 2 个字符串。我错过了什么?我会说我的结果应该总是一个 float ?
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
,请使用 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;
}
关于Javascript float + float = 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966681/