在Javascript中,toFixed()是否足够准确?

时间:2012-09-01 21:03:04

标签: javascript currency rounding tofixed

我正在创建一个用于计算订单总额的脚本。某些变量可能会改变价格,因此会出现一些长位小数。

toFixed()是否足够精确以对这些数字进行舍入并始终得到相同的结果?

编辑: 我想出的解决方案就是使用它:

Number.prototype.toCurrency = function(){
    return Math.round(this*100)/100;
}

这是否足以保持一致性?

1 个答案:

答案 0 :(得分:2)

您不应该使用toFixed,因为它不能在浏览器中保持一致。

Javascript中的所有数字都是双精度浮点数。根据定义,浮点数不精确,因此数字表示本身不够精确,无法始终得到精确的结果。

如果你想在Javascript中获得可预测的结果,你必须记住数字的精度限制,这样你总是有足够的余量才能正确地舍入数字。