Wierzę, że mam dobrą odpowiedź na to pytanie, ale chciałem się upewnić, że ruby-philes nie mają o wiele lepszego sposobu na zrobienie tego.Konwertuj wartość wejściową na liczbę całkowitą lub zmiennoprzecinkową, stosownie do Ruby
Zasadniczo, biorąc pod uwagę ciąg wejściowy, chciałbym przekonwertować ciąg na liczbę całkowitą, w stosownych przypadkach lub float, w stosownych przypadkach. W przeciwnym razie po prostu zwróć ciąg znaków.
Poniżej zamieszczam moją odpowiedź, ale chciałbym się dowiedzieć, czy jest lepszy sposób.
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"
W mojej funkcji, to faktycznie zostanie zwrócone jako ciąg znaków, ponieważ konwersja zmiennoprzecinkowa zakończy się niepowodzeniem i wygeneruje wyjątek, a następnie zostanie uruchomiona procedura ratowania się i powrót. – WattsInABox
@ WattsInABox: Właśnie jesteś (pokazuje, jak bardzo używam 'Float'). Ale wciąż masz na uwadze zapis naukowy. –
To jest tru, @muistooshort. Dzięki! – WattsInABox