JavaScript数字类型对货币操作的安全性如何
How safe is JavaScript number type for money operations?
使用JavaScript数字类型(64位双精度)进行货币操作安全吗?我们计划为小企业开发一款软件,金额通常不到100000美元,但我认为数字可能会大得多,因为我们使用当地货币,例如,1美元=6.5人民币。
我知道可能会失去准确性,但在现实世界中有多糟糕?
我还建议我们可以跳过之类的问题
0.2 + 0.1 = 0.30000000000000004
因为在使用本地货币设置截断数字后,它将是相同的,例如$0.30
有些人还建议将数值乘以100来缩放,但我不确定这是否适用于所有情况,因为我认为可能存在点后超过2位数的货币。
我建议您在处理金钱时使用整数。浮点运算是不可靠的,所以最好使用固定类型进行货币计算。
然而,有bignumber.js库,它经常用于处理与货币相关的计算。
这里有一个很好的参考和相关线程:JavaScript中的精确财务计算。Gotchas是什么?
我认为最好的方法是使用特殊库
像bignumber.js
例如:
0.3 - 0.1 // 0.19999999999999998
x = new BigNumber(0.3)
x.minus(0.1) // "0.2"
x // "0.3"
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- fluxxor向一个flux实例添加一组以上的操作
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 操作放置在画布上的元素之间的连接
- 使用“+="操作人员
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- Jquery未定义函数正在停止其他操作
- 如何操作iframe之外的元素
- javascript对象操作:根据指定条件选择属性
- jQuery:暂停按钮可以暂停所有其他操作
- 用于选择/文本框操作的JavaScript
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 通过javascript操作图像,非常简单
- JavaScript数字类型对货币操作的安全性如何
- 客户端游戏逻辑操作的web应用安全性
- 网页小部件 - 安全性和操作方式