Określ, czy łańcuch jest poprawną wartością zmiennoprzecinkową

Czy istnieje sposób sprawdzenia, czy wartość ciągu jest poprawną wartością zmiennoprzecinkową. Wywołanie to_f na łańcuchu spowoduje przekształcenie go na 0.0, jeśli nie jest to wartość liczbowa. A użycie Float () wywołuje wyjątek, gdy przekazywany jest niepoprawny ciąg float, który jest bliższy temu, co chcę, ale nie chcę obsługiwać wyjątków przechwytywania. To, czego naprawdę chcę, to metoda taka jak nan? który istnieje w klasie Float, ale to nie pomaga, ponieważ nie-liczbowy łańcuch nie może zostać przekonwertowany na zmiennoprzecinkowy bez zmiany na 0.0 (użycie to_f).

<code>"a".to_f => 0.0

"a".to_f.nan? => false

Float("a") => ArgumentError: invalid value for Float(): "a"
</code>

Czy istnieje proste rozwiązanie tego problemu lub czy muszę napisać kod, aby sprawdzić, czy ciąg jest prawidłową wartością zmiennoprzecinkową?

questionAnswers(8)

yourAnswerToTheQuestion