是否有一种简单/方便的方法来解析价格金额的字符串,以便检测它是以常规形式还是以欧洲形式编写?
正则:
"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
我可以看到,
是否在.
之前并推断出来,但如果数字少于4位呢?测试用例过多。
有没有更好的方法(红宝石)
答案 0 :(得分:1)
我会选择money
gem:
▶ "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"