var sssee = "581.30";
var ssser = "1,178.70";


var ssee = sssee.trim().replace(/,/g, "");
var sser = ssser.trim().replace(/,/g, "");
console.log("ee " + ssee)
console.log("er " + sser)
console.log("total " + parseFloat(ssee + sser))





在日志中,我看到:


  ee 581.30
  
  er 1178.70
  
  总计581.301178


为什么在添加替换以删除,时会弄乱计算。

最佳答案

变量sseesser都是字符串。当执行form ssee + sser时,它将返回字符串581.301178.70,然后将其传递给parseFloat函数。当有两个小数点时,只有第一个小数点是正确的,这就是parseFloat返回581.301178的原因。

使用正确的解决方案检查代码段。



var sssee = 581.30;
var ssser = "1178.70";


var ssee = String(sssee).trim().replace(/,/g, "");
var sser = String(ssser).trim().replace(/,/g, "");

console.log("ee " + ssee)
console.log("er " + sser)
console.log("total " + (parseFloat(ssee) + parseFloat(sser)))





在使用sseessser方法之前,还应该在String对象中包装trimreplace。如果不这样做,则以浮点数而不是字符串的形式提供这些变量,则代码将无法工作。

关于javascript - 在jQuery中添加float,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41633682/

10-11 20:32