parse for ruby integer data-conversion

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.