4

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

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

编辑:我想出的解决方案是使用这个:

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

这足以保持一致性吗?

4

1 回答 1

2

您不应该使用toFixed它,因为它不能在浏览器中始终如一地工作。

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

如果您希望在 Javascript 中获得可预测的结果,则必须牢记数字的精度限制,以便始终有足够大的余量来正确舍入数字。

于 2012-09-01T21:11:11.763 回答