我使用Money gem来处理不同的货币。我在" JPY"中看到了一种奇怪的行为。货币。
我有以下费率:
10.to_money.exchange_to('EUR')
=> #<Money fractional:920 currency:EUR>
10.to_money.exchange_to('JPY')
=> #<Money fractional:1230 currency:JPY>
尝试兑换货币,我得到了奇怪的结果:
#<Money fractional:123000 currency:JPY>
&#34; JPY&#34;转换应为std::istream_iterator<T>
。关于什么事情的任何想法?
答案 0 :(得分:3)
这实际上取决于app.get("/users/:id", function(req, res){
var data = userModel.find().where('id', req.params.id);
res.send(data);
});
的定义。下面的代码显示10美元确实等于1230日元。
Currency
如果您检查require "rails"
require "money-rails"
Money.add_rate('USD', 'EUR', 0.92)
Money.add_rate('USD', 'JPY', 123.0)
p 10.to_money.exchange_to('JPY') == Money.new(1230,"JPY")
#=> true
货币
123000
可能不正确
JPY
p Money.new(1230,"JPY").currency
#<Money::Currency id: jpy, priority: 6, symbol_first: true, thousands_separator: ,, html_entity: ¥, decimal_mark: ., name: Japanese Yen, symbol: ¥, subunit_to_unit: 1, exponent: 0.0, iso_code: JPY, iso_numeric: 392, subunit: , smallest_denomination: 1>
定义中需要注意的重要字段是Currency
的值。根据文件:
:subunit_to_unit单位与子单位之间的比例
这意味着,如果是日元,则显示的值为日元,不需要乘以100,如美元或欧元的情况。
subunit_to_unit: 1
以下是EUR
的货币定义 p 10.to_money.exchange_to('EUR')
#=> #<Money fractional:920 currency:EUR>
p 10.to_money.exchange_to('JPY')
#=> #<Money fractional:1230 currency:JPY>
如果是欧元,#<Money::Currency id: eur, priority: 2, symbol_first: true, thousands_separator: ., html_entity: €, decimal_mark: ,, name: Euro, symbol: €, subunit_to_unit: 100, exponent: 2.0, iso_code: EUR, iso_numeric: 978, subunit: Cent, smallest_denomination: 1>
表示该值以美分(或等值)