Javascript float + float = 字符串?

标签 javascript jquery nan

当我运行它时,它返回 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/

相关文章:

javascript - 使用 javascript 创建和修改 xml 文件(想在客户端保存 xml 文件)

JavaScript "this.variable"在一个实例中返回未定义,但在另一个实例中则不返回

javascript - 如何理解两个不同的跨度是否在同一行?

matlab - 计算二维数组每一行中非 NaN 值的数量

python - 将 pandas Series 作为列添加到 DataFrame 时出现 Wild NaN

python - 用 NaN 替换数据框列中低于特定阈值的值

javascript - Maquette 的 createMapping() 参数的 updateTarget 函数中发生了什么?

jquery - 更改 jQuery UI 中选项卡的 CSS

javascript - 根据复选框状态启用/禁用输入字段

php - 获取单选按钮值并通过ajax发送到php