javascript - 货币操作的 JavaScript 数字类型有多安全?

标签 javascript currency

<分区>

使用 JavaScript 数字类型(64 位 double )进行货币操作是否安全?我们计划为小型企业开发一款软件,金额通常低于 100.000 美元,但我认为数字可能会更大,因为我们使用本地货币,例如 1 美元 = 6.5 元人民币。

我知道可能会丢失精度,但在现实世界中有多糟糕?

我还建议我们可以跳过类似的问题

0.2 + 0.1 = 0.30000000000000004

因为在使用本地货币设置 chop 数字后它会是相同的,例如 $0.30

有些人还建议通过将值乘以 100 来缩放值,但我不确定这是否适用于所有情况,因为我建议可能会有超过 2 位数字的货币。

最佳答案

我建议您在处理金钱时使用整数。 Floating point arithmetic is broken并且不可靠,因此最好使用固定类型进行货币计算。

但是有bignumber.js通常用于处理与金钱相关的计算的库。

这里有一个很好的引用和相关主题:Precise Financial Calculation in JavaScript. What Are the Gotchas?

关于javascript - 货币操作的 JavaScript 数字类型有多安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34392129/

相关文章:

javascript - 混合使用 ES6 Promise 和 JQuery Promise

javascript - 如何绑定(bind)复选框以从 javascript 对象获取正确的数据?

java - 如何从不同的类调用比较两个值的方法?

java - 货币格式问题

python - 具有特定格式的货币

javascript - AngularJS: Controller 内未定义范围变量

c# - 未找到 GeckoFX JSContext C#

javascript - SVG 蒙版始终使元素不可见

c# - Visual Studio 2015 - 如何更改默认货币?

currency - 如何在应用程序中计费