这是 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.4JS 浮点数计算问题,可以参考JS 计算 精度 问题