for - integer to string ruby
Convierte cadena con coma a entero (6)
¿Hay algún método ordenado para convertir "1,112" al número entero 1112, en lugar de 1?
Tengo uno, pero no limpio:
"1,112".split('','').join.to_i #=> 1112
¿Qué tal esto?
"1,112".delete('','').to_i
Algunos más convenientes
"1,1200.00".gsub(/[^0-9]/,'''')
hace que "1 200 200" funcione correctamente también
El siguiente es otro método que funcionará, aunque como con algunos de los otros métodos eliminará lugares decimales.
a = 1,112
b = a.scan(//d+/).join().to_i => 1112
Lo haría usando String#tr
:
"1,112".tr('','','''').to_i # => 1112
Si alguien está buscando sumar más de una coma, soy un fanático de:
"1,200".chars.grep(//d/).join.to_i
No sé sobre el rendimiento, pero es más flexible que un gsub
, es decir:
"1-200".chars.grep(//d/).join.to_i
También puede asegurarse de que su código se localice correctamente o asegurarse de que los usuarios estén acostumbrados a la notación "internacional". Por ejemplo, "1,112" en realidad significa diferentes números en diferentes países. En Alemania significa el número un poco más de uno, en lugar de mil y algo.
El artículo correspondiente de Wikipedia está en http://en.wikipedia.org/wiki/Decimal_mark . Sin embargo, parece estar mal escrito en este momento. Por ejemplo, como chino, no estoy seguro de dónde viene esta descripción sobre el separador de miles en China.