将String转换并存储为货币值

Qua*_*hts 2 ruby rubygems ruby-on-rails

我有一个字符串,我需要在RUBY中将其转换为货币格式并验证它是否与预期匹配.

String = "$6,178.50 USD / 22,693.01 AED"
Run Code Online (Sandbox Code Playgroud)

我想把它分成两个不同的变量,比如

usa_price = $6,178.50

aed_price = 22,693.01
Run Code Online (Sandbox Code Playgroud)

expected_output= $6,178.50 * 3.67 = 22,693.01 (应与AED中的值匹配)

我试过做gsub/scan而且我现在很困惑,在Ruby中实现这个目的的最好方法是什么!

Rya*_*igg 7

我会拆分/,然后使用moneygem来解析金额,如下所示:

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

然后,因为它们现在是Money对象,你可以用它们做金钱的事情:

>> amounts.first.format
=> "$6,178.50"
Run Code Online (Sandbox Code Playgroud)