购物车商品信息是从数据库得到,数量可以输入可以通过按钮控制,商品小计是用JQ计算,数量乘以单价(单价只是一个两位小数,前面的¥和后面的/500g都是格式加上去的,并没有参加计算),然后总金额是每条商品小计相加得到。并不知道哪里出问题了。
这是 JS 进行浮点计算精度的问题。当我们用 JS 计算 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 计算 精度 问题
这是
JS进行浮点计算精度的问题。当我们用JS计算0.1 + 0.2的时候会出现如下结果,是不是很诧异,这和
Float计算本身是有关系的。一般和价格计算相关的情况,适合用整型进行存储,这样就不会出现浮点型计算的问题了。解决方案
JS浮点数计算问题,可以参考JS 计算 精度 问题