2012-10-09 5 views
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/스캔 혼란은 지금, 최고의 무슨 메신저 way to Ruby에서 이것을 달성하십시오 !!! 당신이 첫 번째 숫자는 USD이며, 두 번째 숫자는 AED되고 순서는 다음 변경되지 않습니다 확신 경우

답변

1

:

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 
+1

이 솔루션은 1,000 달러가 아닌 금액, 즉 178.50 달러로 사용할 수 있습니까? –

+0

아니요,하지만 지금은 효과가 있습니다. – megas

+0

수십만의 금액은 어떨까요? –

7

나는 /에 분할 한 다음를 구문 분석 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" 
관련 문제