【问题标题】:Incorrect result while adding with parseFloat in Javascript在 Javascript 中使用 parseFloat 添加时结果不正确
【发布时间】:2017-07-09 06:50:54
【问题描述】:

我想执行浮点数的加法。我将永远只有 2 位小数。

但是如果我这样做:

         var num = 0;
         num += parseFloat("2434545.64").toFixed(2);
         num += parseFloat("454560.91").toFixed(2);

我得到的值为02434545.64454560.91 它是附加而不是添加。加法是否总是准确的?

【问题讨论】:

    标签: javascript parsefloat


    【解决方案1】:

    toFixed() 返回一个字符串。 所以你连接两个String
    你应该只在最后一个语句中使用toFixed(),并且你不应该在一个偶数语句中将此调用与+= 运算符混为一谈,因为这里:

    num += parseFloat("2434545.64").toFixed(2);
    

    parseFloat("2434545.64").toFixed(2) 首先被评估。
    它产生一个字符串。
    然后评估其num += String result
    因此,它会将浮点数与字符串连接起来。它再次产生一个字符串连接,而不是一个算术运算。

    只需在不同的语句中调用toFixed()

    var num = 0;
    num += parseFloat("2434545.64");
    num += parseFloat("454560.91");
    num = num.toFixed(2);
    

    【讨论】:

      【解决方案2】:

      给你解决方案

      var num = 0;
           num += 2434545.64;
           num += 454560.91;
      console.log(parseFloat(num).toFixed(2));
      

      这里是 parseFloat https://www.w3schools.com/jsref/jsref_parsefloat.asp 的文档

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-13
        • 2023-01-24
        • 2016-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多