私はこの問題に対する良い答えがあると信じていますが、これを行うにはルビーファイルにはもっと良い方法がないことを確認したかったのです。入力値をIntegerまたはFloatに適切に変換する
基本的に、入力文字列を指定すると、文字列を適切な場合は整数に、必要に応じて浮動小数点に変換したいと考えています。それ以外の場合は、文字列を返します。
以下に私の回答を掲載しますが、より良い方法があるかどうかを知りたいと思います。
例:
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"
私の関数では、実際には文字列として返されます。なぜなら、浮動小数点数の変換は失敗し、例外がスローされ、レスキューがto_sを実行して復帰するからです。 – WattsInABox
@WattsInABox:そうです(私が「Float」をどのくらい使っているかを示しています)。しかし、あなたはまだ心配する科学的表記法を持っています。 –
これは本当に@muistooshortです。ありがとう! – WattsInABox