Javascript 浮点数 + 浮点数 = 字符串?
Javascript Float + Float = String?
当我运行这个,它returnsNaN
。如果我不 parseFloat,我将添加 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
,请使用 isNaN
函数:
if (!isNaN(parseFloat(number))) { ... }
请注意 NaN === NaN
returns 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;
}
当我运行这个,它returnsNaN
。如果我不 parseFloat,我将添加 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
,请使用 isNaN
函数:
if (!isNaN(parseFloat(number))) { ... }
请注意 NaN === NaN
returns 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;
}