javascript - 在 Javascript 中,toFixed() 是否对货币足够准确?

标签 javascript currency rounding tofixed

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

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/

相关文章:

javascript - 为什么我的货币换算 javascript 程序无法运行?

javascript - 如何为react-router路由器设置基本名称

grails - 用户输入的grails货币值

java - 金融应用程序中必需的货币数据类型?

rounding - 四舍五入标准-财务计算

ios - 没有 * 候选人产生预期的结果类型 FloatingPointRoundingRule

javascript - VS 代码 : check whether the file explorer is shown?

javascript - 使用 jQuery 将 SVG 元素插入到 HTML 标记中

android - 显示 Cent 货币符号?

C# 舍入因平台而异?