是否有任何简洁的方法将“1,112”转换为整数1112,而不是1?
我有一个,但不是很整洁:
"1,112".split(',').join.to_i #=> 1112
答案 0 :(得分:171)
这个怎么样?
"1,112".delete(',').to_i
答案 1 :(得分:5)
您可能还需要确保代码正确本地化,或确保用户习惯使用“国际”表示法。例如,“1,112”实际上意味着不同国家的不同数字。在德国,它意味着数字略高于一,而不是一千个。
相应的维基百科文章位于http://en.wikipedia.org/wiki/Decimal_mark。虽然此时似乎写得不好。例如,作为一个中国人,我不确定这些关于中国千分离器的描述来自何处。
答案 2 :(得分:4)
更方便一些
"1,1200.00".gsub(/[^0-9]/,'')
它使“1 200 200”正常工作
答案 3 :(得分:2)
以下是另一种可行的方法,但与其他一些方法一样,它会删除小数位。
a = 1,112
b = a.scan(/\d+/).join().to_i => 1112
答案 4 :(得分:1)
我会使用String#tr
:
"1,112".tr(',','').to_i # => 1112
答案 5 :(得分:1)
如果有人想要提供的不仅仅是逗号,我是粉丝:
"1,200".chars.grep(/\d/).join.to_i
关于性能的不知道,但它比gsub
更灵活,即:
"1-200".chars.grep(/\d/).join.to_i
答案 6 :(得分:0)
String count = count.replace(",", "");