我正在创建一个用于计算订单总额的脚本.某些变量可能会改变价格,因此会出现一些长位小数.
toFixed()是否足够精确以舍入这些数字并始终得到相同的结果?
编辑:
我想出的解决方案就是使用它:
Number.prototype.toCurrency = function(){
return Math.round(this*100)/100;
}
这是否足以保持一致性?
最佳答案 您不应该使用toFixed,因为它在浏览器中不能一致地工作.
Javascript中的所有数字都是双精度浮点数.根据定义,浮点数不精确,因此数字表示本身不够精确,无法始终获得精确结果.
如果你想在Javascript中获得可预测的结果,你必须记住数字的精度限制,这样你总是有足够的余量才能正确地舍入数字.