Creo que tengo una buena respuesta a este problema, pero quería asegurarme de que los ruby-philes no tuvieran una forma mucho mejor de hacerlo.Convertir valor de entrada a entero o flotar, según corresponda con Ruby
Básicamente, dada una cadena de entrada, me gustaría convertir la cadena a un número entero, cuando corresponda, o un flotador, cuando corresponda. De lo contrario, simplemente devuelve la cadena.
Voy a publicar mi respuesta a continuación, pero me gustaría saber si hay una mejor manera de salir.
Ex:
to_f_or_i_or_s("0523.49") #=> 523.49
to_f_or_i_or_s("0000029") #=> 29
to_f_or_i_or_s("kittens") #=> "kittens"
En mi función, eso realmente sería devuelto como una cadena, ya que la conversión flotante fallaría y arrojaría una excepción y luego el rescate se ejecutaría a_s y regresaría. – WattsInABox
@WattsInABox: Tienes razón (que muestra lo mucho que usar 'Float'). Pero todavía tienes notación científica de la que preocuparte. –
Esto es tru, @muistooshort. ¡Gracias! – WattsInABox