Articles of 货币

有没有一个Money类的JavaScript?

免责声明:截至2011年10月14日,为了清晰起见,完全重写 鉴于 JavaScript中的number原语是IEEE 754 64位浮点( 在其他语言中称为双 精度 浮点数 ), 使用浮点数来模拟货币是一个坏主意 , 是一个Money原型 (JavaScript) 或一个可以简化使用的Coffeescript类伪整数美分和string货币ISO 4217代码来表示货币可用 ? ^仍然有一个更好的方式来说。 我希望find一些能够反映出包括一个整数原语在内的其他许多语言的通用devise模式的东西。 作为例子,我熟悉Ruby的金钱gem和python-money包,它们都实现了这种devise模式的变化。 理想情况下,寻找一些将与backbone.js和node.js很好,但所有的build议表示赞赏。 编辑4 :据我所知,只要执行roundDownOrUp ? floor : ceiling 在每个操作之后(&在链式操作之间), roundDownOrUp ? floor : ceiling被调用,所有的东西都会像处理整数一样起作用。 旧的信息,保留以logging问题的历史。 我读了如何在JavaScript中将数字格式化为金钱? 在那里我发现了accounting.js和jQuery Globalize ,它们都做漂亮的打印,但不是用来模拟货币和执行操作。 编辑1 :刚刚在ISO 4217知道npmregistry中findJSorm货币 ,但似乎没有包含任何修正浮动“ 陷阱 ”。 如果我误读了,请纠正。 编辑2折叠成重写。 编辑3 :它看起来像一个很好的select将使用@RicardoTomasibuild议的node-bigint 。

我应该如何将价格存入mongoose?

我使用mongoose模式与node.js一起使用了express-validator(它具有节点validation器santiziations和validation器)。 什么是存储物品价格的好方法? 我现在有 var ItemSchema = new Schema({ name : { type: String, required: true, trim: true } , price : Number }); 价格是可选的,所以我有: if ( req.body.price ) { req.sanitize('price').toFloat(); req.assert('price', 'Enter a price (number only)').isFloat(); } expression式validation器给我isNumeric(允许0填充),isDecimal,isInt …我宁愿只是转换为十进制和剥离所有字符,所以我总是插入42.00分贝。 我想让他们input42.00美元,42美元,42美元,42.00美元,只是存储42.00。 我怎样才能做到这一点? 并仍然validation我看到类似于数字的东西,例如,如果他们input'abc'我想要使用req.assert将错误返回到表单。 另外,我想货币最终会成为一个问题… 更新,我发现这个职位,说存储价格以美分整数,所以4200 https://dba.stackexchange.com/questions/15729/storing-prices-in-sqlite-what-data-type-to-use 当我打电话给item.price时,我只需要一种将4200转换为$ 42.00的方法,并将input清理并转换为4200。