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浮点+浮点=字符串?的主要内容,如果未能解决你的问题,请参考以下文章

在Javascript中处理浮点精度[重复]

JavaScript中的简单浮点数学

ios 在json解析过程中浮点型字符串出现精度丢失问题

自写小函数处理 javascript 0.3*0.2 浮点类型相乘问题

JAVA字符串与整形浮点类型之间的相互转换总结

javascript中如何将获得的整型数值转换为字节数组