我應該如何使用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