我有一个字符串,我需要在RUBY中将其转换为货币格式 验证它是否与预期匹配。
String = "$6,178.50 USD / 22,693.01 AED"
我想把它分成两个不同的变量,比如
usa_price = $6,178.50
aed_price = 22,693.01
expected_output= $6,178.50 * 3.67 = 22,693.01
(应与AED中的值匹配)
我试过做gsub / scan而且我现在很困惑,最好的方法是什么 在Ruby中实现这一点!!!
答案 0 :(得分:7)
我会拆分/
,然后使用money
gem解析金额,如下所示:
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"
答案 1 :(得分:1)
如果你确定第一个数字是美元而第二个数字是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