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
为什么在添加替换以删除
,
时会弄乱计算。 最佳答案
变量ssee
和sser
都是字符串。当执行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)))
在使用
ssee
和ssser
方法之前,还应该在String
对象中包装trim
和replace
。如果不这样做,则以浮点数而不是字符串的形式提供这些变量,则代码将无法工作。关于javascript - 在jQuery中添加float,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41633682/