Ale*_*ski 16 javascript currency node.js backbone.js
免责声明:截至2011年10月14日,为了清晰起见,完全重写
鉴于number JavaScript中的原语是IEEE 754 64位浮点(在其他语言中称为双精度),并使用浮点数来模拟货币是一个坏主意,是Money原型(JavaScript)或Coffeescript类,可以简化使用伪整数美分和字符串货币ISO 4217代码表示可用的货币?
^还有更好的方式来表达这一点.
我希望找到能够反映其他许多语言的常见设计模式的东西,其中包括整数原语.
作为示例,我熟悉ruby 的money gem和python-money包,它们都实现了这种设计模式的变体.
理想情况下寻找能与backbone.js和node.js配合使用的东西,但所有建议都值得赞赏.
编辑4:据我所知,只要roundDownOrUp ? floor : ceiling在每次操作后调用Number的实现(&在链接操作之间),一切都会像处理整数那样起作用.
我读过如何在JavaScript中将数字格式化为金钱? 在那里我找到了accounting.js和jQuery Globalize,它们都做了漂亮的打印但不是为了模拟货币并用它们执行操作.
编辑1:刚刚在npm注册表中找到了知道ISO 4217的JSorm货币,但似乎没有包含浮动" 陷阱 "的任何修复.如果我有误读,请更正.
编辑2折叠成重写.
编辑3:看起来好的选择是使用@RicardoTomasi建议的node-bigint.
Ric*_*asi 11
无论bigdecimal.js和节点BIGINT有任意精度.
我会选择bigint.bigdecimal是Java的BigDecimal的GWT版本,时钟频率为113kb,因此代码不是人们可以称之为可读的.
更新: money.js刚刚发布,但它使用javascript的原生号码,专注于货币转换.
| 归档时间: |
|
| 查看次数: |
6132 次 |
| 最近记录: |