2015-10-23 75 views
0

有沒有簡單/方便的方法來解析字符串的價格數量,以便它能檢測到它是以常規形式還是以歐洲形式書寫?正確解析歐洲格式的格式化貨幣

常規:

"3,599.90" 

歐元:

"3.599,90" 

都應該3,599.90解析

測試後:

3.599,90 #=> 3599.90 
3,599.90 #=> 3599.90 
599.90 #=> 599.90 
599,90 #=> 599.90 
599 #=> 599 
1,000,000 #=> 1000000 
1.000.000 #=> 1000000 

我可以看到,如果,我s之前.並推斷,但如果數字少於4位數?太多的測試用例。

是否有更好的方法來做到這一點(紅寶石)

+0

只是刪除所有的句號和逗號?然後除以100爲小數? –

+0

然後我需要檢測它是否有小數。更多的測試用例 –

回答

1

我會money寶石去:

▶ "3,599.90".to_money 
#⇒ #<Money fractional:359990 currency:USD> 
▶ "3.599,90".to_money 
#⇒ #<Money fractional:359990 currency:USD> 
▶ "3.599,90".to_money.to_s 
#⇒ "3599.90"