购物车计算价格JQ问题

图片描述

购物车商品信息是从数据库得到,数量可以输入可以通过按钮控制,商品小计是用JQ计算,数量乘以单价(单价只是一个两位小数,前面的¥和后面的/500g都是格式加上去的,并没有参加计算),然后总金额是每条商品小计相加得到。并不知道哪里出问题了。

阅读 8.9k
2 个回答

这是 JS 进行浮点计算精度的问题。当我们用 JS 计算 0.1 + 0.2 的时候会出现如下结果,

0.1+0.2

是不是很诧异,这和 Float 计算本身是有关系的。一般和价格计算相关的情况,适合用整型进行存储,这样就不会出现浮点型计算的问题了。

解决方案

var unitPrice = 19.80;
var amount = 3;
var totalPrice;

totalPrice = unitPrice * amount;
console.log(totalPrice);  // 59.400000000000006

totalPrice = (unitPrice * 100) * amount / 100;
console.log(totalPrice);  // 59.4

totalPrice = parseFloat((unitPrice * amount).toFixed(2));
console.log(totalPrice);  // 59.4

JS 浮点数计算问题,可以参考JS 计算 精度 问题

你好,请问一下,你单独一行计算商品小计是怎么做到的,我不会使用啊,总金额我会计算,单独一行金融计算我不会。谢谢,能把源码发给我吗