javascript - JavaScript 是否有 Money 类?

标签 javascript node.js backbone.js currency

免责声明:为清楚起见,自 2011 年 10 月 14 日起完全重写

鉴于 JavaScript 中的 number 原语是 IEEE 754 64 位浮点(在其他语言中称为 double )和 using floats to model currencies is a bad idea , 是 Money 原型(prototype) (JavaScript) Coffeescript Class 简化伪整数美分和字符串的使用 currency ISO 4217 code表示可用的货币

^ 还是有更好的表达方式。

我希望找到能反射(reflect)许多其他语言的通用设计模式的东西,这些语言确实包含整数原语。

例如,我熟悉 money gem对于 ruby ,python-money包,两者都实现了这种设计模式的变体。

理想情况下,寻找可以与 backbone.js 配合使用的东西和 node.js ,但所有建议都表示赞赏。

Edit 4:据我所知,只要实现 roundDownOrUp ? floor : 天花板 在每次操作之后(以及在链式操作之间)都会在 Number 上调用,一切都会像处理整数一样运行。


旧信息,保留以记录问题的历史。

我读过 How can I format numbers as money in JavaScript? 我在哪里找到 accounting.jsjQuery Globalize它们都可以进行 pretty-print ,但并非旨在模拟货币并对其进行操作。

编辑 1:刚刚找到 JSorm Currencynpm registry这是 ISO 4217 感知的,但似乎不包括任何对 float “gotchas”的修复。如有误读请指正。

Edit 2 折叠成 rewrite。

编辑 3:看起来不错的选择是使用 node-bigint正如@RicardoTomasi 所建议的那样。

最佳答案

两者bigdecimal.jsnode-bigint具有任意精度。

我会选择 bigint。 bigdecimal 是 Java 的 BigDecimal 的 GWT 版本,大小为 113kb,因此代码不是所谓的可读

更新: money.js刚刚发布,但是使用的是javascript原生的Number,并且专注于货币转换。

关于javascript - JavaScript 是否有 Money 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7748563/

相关文章:

javascript - 从 reducer 访问 Redux 存储值,无需控制操作创建者

javascript - 使用 sequelize.query 缓存

javascript - Protractor Debug模式给出 "FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory"

javascript - 如何在 Backbone View 中访问 Rails 配置信息?

javascript - 如果类存在,则在表单字段中显示值

javascript - 通过 Vanilla javascript更改数据目标按钮属性

javascript - 如何在 React Native 中更改数组键名称

javascript - 如何使用 Node.js 每 10 秒发送一封电子邮件?

javascript - javascript 中的函数上下文问题 - 主干

javascript - 发布复选框值