如何使用Ruby Money gem设置rounding_method?

时间:2012-03-26 15:12:01

标签: ruby-on-rails ruby currency

我们正在使用Ruby Money gem。它很棒。

我们现在有一个新要求将转换后的货币金额换算成整数美元(没有 便士)。

我找到了Ruby的Fixnum圆形方法

190.round(-1)返回200 149.round(-1)返回100

这就是我想要的。

我看到Money :: Bank :: VariableExchange类支持rounding_method。

我可以通过调用

来获取银行对象的句柄

Money.default_bank

但是如何在Money.default_bank对象中注册或分配舍入方法?

谢谢!

2 个答案:

答案 0 :(得分:0)

查看文档:

http://rubydoc.info/github/RubyMoney/money/Money/Bank/Base#rounding_method-instance_method

您似乎需要创建一个银行:

Money::Bank::Base.new {|n| n.round(-1) }

答案 1 :(得分:0)

由于您想使用Bank VariableExchange:

Money.default_bank = Money::Bank::VariableExchange.new { |n| n.round(-2) }

将您的默认银行设置为使用VariableExchange,并将交易所舍入到最近的美元。