¿Existe algún método sencillo para convertir "1112" en un número entero 1112, en lugar de 1?
Tengo uno, pero no ordenado:
"1,112".split(',').join.to_i #=> 1112
¿Existe algún método sencillo para convertir "1112" en un número entero 1112, en lugar de 1?
Tengo uno, pero no ordenado:
"1,112".split(',').join.to_i #=> 1112
¿Qué tal esto?
"1,112".delete(',').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, "1112" en realidad significa números diferentes 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 de Wikipedia correspondiente se encuentra 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.
fuente
Algunos mas convenientes
hace que "1200200" funcione correctamente también
fuente
'1,1200.00'.gsub(/[^0-9\.]/,'').to_f
."1,1200.00"
a"1120000"
? ¿No solo desea reemplazar el,
(o, según la configuración regional, el.
)? Además, esto no lo convierte en un número entero o flotante, solo una cadena sin delimitadores.El siguiente es otro método que funcionará, aunque al igual que con algunos de los otros métodos, eliminará los lugares decimales.
fuente
Lo haría usando
String#tr
:fuente
Si alguien busca sustituir más que una coma, soy fan de:
No sé sobre el rendimiento, pero es más flexible que a
gsub
, es decir:fuente
fuente