money rails gem, 如何将 6 位小数保存到字段

money rails gem, how to save 6 decimal to field

我有字段

monetize :unit_price_cents, as: 'unit_price', with_model_currency: :unit_price_currency

它在数据库中的类型是float。我想在数据库中保存值,保留 6 个十进制值。在 Money GEM 中,我自定义成功:

Money.new(1.123456).to_f => 0.01123456

调试了一些func,觉得问题在gemmoney-rails。它在调用 Money.new

之前四舍五入

所以任何配置或自定义都可以做到这一点? gem 中的代码加载太疯狂了

我不太明白你的问题。 您可以将数据库格式更改为 decimal(12,6) 吗?这允许小数点前有 6 位数字,这对每个人来说应该足够了(tm)

所以允许使用小数点。只需将配置添加到 initialize/money.rb

Money.infinite_precision = true

也许您想自定义 Money gem 的 func 格式以显示分的小数点。