我有一个独特的问题,快要失去理智了。
我正在使用js购物车(simplecart),当我向购物车添加一些东西时,它会在价格中添加一个2或从价格中减去一个3,小数点后15位:
这是产品的价格: 35,99这是当我添加这个产品时,它计算出的总数:
欧元35,99000000000000002
我认为这可能与运输或税收有关,但即使在禁用这些模块后,它仍然是一样的。此价格也显示为购物车中的项目价格。
这是我的jsfiddle:
我该如何解决这个问题呢?我不知道这是什么时候悄悄出现的,已经剥离了整个项目,试图隔离问题,但即使在这种最小的设置中也会发生这种情况,而且我似乎记得这辆车工作得很好。
可能的问题是什么?
发布于 2012-10-18 09:51:25
simpleCart.currency({
code: "EUR" ,
name: "Euro" ,
symbol: " € " ,
delimiter: " " ,
decimal: "," ,
after: false ,
accuracy: 2
});
将精度更改为两位。您应该使用服务器端验证来计算最终成本,并且只使用javascript向用户指示成本。
发布于 2012-10-18 09:48:53
这是一个浮点精度的问题。Javascript没有decimal类型,所以所有的数字都是用浮点数来处理的,这意味着你得到的是近似值而不是精确的表示。
https://stackoverflow.com/questions/12951675
复制