我应该如何使用MongoID与Money合作?我应该将其配置为BigDecimal吗?在轨道水平?对于ActiveRecord,我们有一些叫做Money的东西,但是AFAIK它只支持ARmongoid中的货币表示
5
A
回答
3
MongoDB将数字存储在各种BSON数据类型(int,long int,double)中。我建议您将货币存储为美分(如果是美元货币)并使用long int数据类型。
7
我也碰到过这个。不幸的是BigDecimal在Mongodb中作为一个字符串存储,所以它不会让你像float或int那样对它进行求和,排序等。
整数似乎走在仙存储的值,可能用这些钱宝石抽象了一点的方式:https://github.com/RubyMoney/money
蒙戈存储上使用最现代化的机器我是这么认为的有64位整型即使以美分计算,也不需要大量的风险。看起来您可以存储-9,223,372,036,854,775,808和9,223,372,036,854,775,807美分之间的数字,因此请取下两位小数,以美元计算您的最小/最大值。
0
我建议你尝试货币导轨作为替代。 https://github.com/RubyMoney/money-rails它维护得非常好,并与mongoid一起工作!
2
如果你喜欢钱宝石,你可以将它存储为钱类型。
一个例子:https://gist.github.com/michaelkoper/5007636
它存储的钱作为数组[美分,货币]
class Product
include Mongoid::Document
field :price, type: Money
end
product = Product.new(:price => Money.new(1000, 'EUR'))
product.price.format
# => "€10.00"
相关问题
- 1. 货币列表与货币符号和货币名称母语
- 2. 在Google图表中显示货币API
- 3. 如何在Go中表示货币?
- 4. symfony2中的货币列表
- 5. CSS中的货币表
- 6. 在C中显示货币#
- 7. 在gridview中显示货币
- 8. 负货币显示
- 9. PHP货币显示
- 10. 在Grails中代表货币(价值+货币)的最佳实践
- 11. ISO货币列表
- 12. PHP的货币格式不显示货币符号
- 13. Android货币类别 - 如何获取货币的显示名称?
- 14. 印度货币的PHP货币格式?
- 15. 显示货币格式
- 16. jQuery显示/隐藏货币
- 17. NVelocity - 显示货币值
- 18. 文本框显示货币
- 19. 国家selction货币显示
- 20. Django-admin:MoneyField不显示货币
- 21. 显示数字货币
- 22. 展示国际货币
- 23. 根据货币代码将货币格式设置为货币
- 24. 如何货币之前显示浮动货币与负号
- 25. Magento显示两种货币(获得货币汇率)
- 26. 在magento显示货币代码和货币符号
- 27. 货币
- 28. Automapper地图(十进制,货币)货币
- 29. 未格式化货币格式货币
- 30. C#格式十进制货币/货币
钱是什么? – shingara 2010-09-28 15:41:54
像小数,int,float ... – luckytaxi 2010-09-28 15:53:59
dm是对的。切勿使用浮点数来表示金钱(如花车,双打)。这会造成很多麻烦。在演示过程中您将损失美分。例如10.2可以表示为10.19999(9)。在舍入和不同的算术运算期间,你将会遇到越来越多的错误[为什么不用double来表示货币](http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency/3730040#3730040) – Dao 2011-04-13 18:43:04