以欧洲形式正确解析格式化货币
properly parse formatted currency in european form
是否有 easy/convinient 方法来解析价格金额的字符串,以便检测它是以常规格式还是以欧洲格式编写的?
常规:
"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 位怎么办?测试用例太多。
有没有更好的方法来做到这一点(ruby)
我会选择 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"
是否有 easy/convinient 方法来解析价格金额的字符串,以便检测它是以常规格式还是以欧洲格式编写的?
常规:
"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 位怎么办?测试用例太多。
有没有更好的方法来做到这一点(ruby)
我会选择 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"