Respostas:
Que tal agora?
"1,112".delete(',').to_i
Você também pode querer ter certeza de que seu código está localizado corretamente ou de que os usuários estejam acostumados com a notação "internacional". Por exemplo, "1.112" na verdade significa números diferentes em países diferentes. Na Alemanha, significa o número um pouco mais de um, em vez de mil e algo assim.
O artigo da Wikipedia correspondente está em http://en.wikipedia.org/wiki/Decimal_mark . Parece estar mal escrito neste momento. Por exemplo, como um chinês, não tenho certeza de onde vêm essas descrições sobre o separador de milhar na China.
Alguns mais convenientes
"1,1200.00".gsub(/[^0-9]/,'')
faz "1 200 200" funcionar corretamente também
'1,1200.00'.gsub(/[^0-9\.]/,'').to_f
.
"1,1200.00"
para "1120000"
? Você não deseja apenas substituir o ,
(ou, dependendo do local, o .
)? Além disso, isso não o converte em um inteiro ou float, apenas uma string sem delimitadores.
Eu faria usando String#tr
:
"1,112".tr(',','').to_i # => 1112
String count = count.replace(",", "");