在jquery中添加float

时间:2017-01-13 11:31:20

标签: javascript jquery

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

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

2 个答案:

答案 0 :(得分:7)

变量sseesser都是字符串。当您执行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。如果不将这些变量作为浮点数而不是字符串提供,那么您的代码将无效。

答案 1 :(得分:1)

你的问题:

将两个字符串(“581.30”+“1,178.70”)连接到一个字符串(“581.301178.70”)。然后你将它解析为浮点数(581.301178)。

解决方案:

首先需要将每个解析为浮点数。完成添加后(parseFloat(ssee) + parseFloat(sser))。