2

文字列があり、RUBYで通貨形式に変換して、期待どおりかどうかを確認する必要があります。

String = "$6,178.50 USD / 22,693.01 AED"

私はそれを次のような2つの異なる変数に分割したい

usa_price = $6,178.50

aed_price = 22,693.01

expected_output= $6,178.50 * 3.67 = 22,693.01(AEDの値と一致する必要があります)

私はgsub/scanを試してみましたが、今は混乱しています。Rubyでこれを実現するための最良の方法は何ですか。

4

2 に答える 2

7

で分割してから、 gemを/使用して次のように金額を解析します。money

require 'money'
amounts = "$6,178.50 USD / 22,693.01 AED".split("/")
amounts.map! { |amount| Money.parse(amount) }

次に、それらはMoneyオブジェクトになっているので、それらを使ってお金を稼ぐことができます。

>> amounts.first.format
=> "$6,178.50"
于 2012-10-10T00:13:12.637 に答える
1

最初の番号がUSDで、2番目の番号がAEDであり、順序が変更されないことが確実な場合は、次のようにします。

str = "$6,178.50 USD / 22,693.01 AED"

usa_price, aed_price = str.scan(/\d{1,2}?,?\d{1,3}\.\d{2}/)

#=> usa_price = 6,178.50, aed_price = 22,693.01
于 2012-10-10T00:08:21.347 に答える