当一个浮点数与任何Number数据进行运算时,都可能会产生精度不准确的问题,而parseInt函数会直接把Number类型的数据进行 舍尾 取值。自然而然地,parseInt(realPrice * 100)的结果是250了,最终targetPrice结果也就是2.5了。
提醒:js中凡是使用浮点数进行运算的,都应该留意其精度产生的误差,避免对计算结果造成影响!!!
解决方案
1.把parseInt函数替换成Math.round
函数。例如:Math.round(obj.value * 100)*0.01
2.使用realPrice.toFixed(2)
。