2015-10-23 73 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"