在Javascript中添加parseFloat时结果不正确

时间:2017-07-09 06:50:55

标签: javascript parsefloat

我想要添加浮点数。我总是只有2位小数。

但是,如果我这样做:

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

我得到的值为02434545.64454560.91 它是附加而不是添加。此外,添加是否准确?

2 个答案:

答案 0 :(得分:3)

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

num += parseFloat("2434545.64").toFixed(2);
首先评估

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

只需在不同的声明中调用toFixed()

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

答案 1 :(得分:0)

您可以使用解决方案

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

以下是parseFloat https://www.w3schools.com/jsref/jsref_parsefloat.asp

的文档