我正在创建一个脚本来计算订单总额。某些变量可以改变价格,因此会出现一些长位数小数。
toFixed()
是否足够精确以四舍五入这些数字并始终得到相同的结果?
编辑: 我想出的解决方案是使用这个:
Number.prototype.toCurrency = function(){
return Math.round(this*100)/100;
}
这是否足以保证一致性?
最佳答案
你不应该为此使用 toFixed
,因为它不能跨浏览器一致地工作。
Javascript 中的所有数字都是 double float 。 float 根据定义是不精确的,因此数字表示本身不够精确,无法始终获得准确的结果。
如果您想在 Javascript 中获得可预测的结果,则必须牢记数字的精度限制,以便始终有足够大的余量来正确地舍入数字。
关于javascript - 在 Javascript 中,toFixed() 是否对货币足够准确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231386/