最新消息:文章中包含代码时,请遵守代码高亮规范!

jquery计算购物车价格保留小数问题【原创】

JavaScript Niki 145浏览 0评论

在项目中计算价格的时候,会很心累,因为jquery的浮点型不精确

有时候遇到测评输入的价格为0.01然后几百的一起结算,我们的总金额后面就会带很多个小数点,

不仅页面错位了,而且我没还得找原因(有可能是给某个变量少写了parseFloat或者parseInt)

就引起了上面的问题,但是如果使用parseFloat或者parseInt的话,我们不仅需要写好久,还需要自己测试好多种可能

有时候自己没测试出来的,到测评那边,加几个0.01的商品,分分钟给你测出来

我以前写的是这样的:


all_money += parseFloat((parseFloat(price)*parseFloat(num1)).toFixed(2));

这样写有时候还是不能精确

现在有个乘法运算


function numMulti(num1, num2) {
var baseNum = 0;
try {
baseNum += num1.toString().split(".")[1].length;
} catch (e) {
}
try {
baseNum += num2.toString().split(".")[1].length;
} catch (e) {
}
return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum);
};
all.text(numMulti(price, num1));//调用上面的函数

现在调用这个乘法函数,就不用我们在测试了,完美的解决了小数点的问题

现在还有一个四舍五入的方法一并发出来


//四舍五入
function decimal(num,v){
var vv = Math.pow(10,v);
return Math.round(num*vv)/vv;
}

这样就可以完美的解决小数点的问题了

 

转载时请注明出处及相应链接,本文永久地址:http://blog.it985.com/22570.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Niki的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!