在 JavaScript 中我可以使用什么作为十进制类型?它不受支持( 0.1 + 0.2 !== 0.3
),我需要它来表示银行/金融应用程序中的精确值。请参阅 The State and Future of JavaScript 好好阅读一下 JavaScript 背后的肮脏细节,以及它(缺乏)对十进制算术的支持。
我所说的“十进制”是指:
- 无限范围和任意精度(如 Java 中的
BigDecimal
),或 - 范围和精度有限,但适合财务计算(例如 C# 中的
decimal
)。
那么,有哪些库或解决方案可以处理十进制值?谢谢!
最佳答案
通常建议1将货币处理为代表美分数量的整数:2572
美分,而不是 25.72
美元。这是为了避免您提到的浮点运算问题。幸运的是,浮点中的整数运算是精确的,因此可以通过缩放来避免小数表示错误。
1道格拉斯·克罗克福德:JavaScript: The Good Parts: Appendix A - Awful Parts (page 105) .
关于JavaScript:十进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3454965/