Ну здесь может быть ситуация, что пользователь введет 1.0e+470 и тогда значение будет INF.
Да и с преобразованием не совсем все гладко, значение 1.0e+50 прочитается правильно, но будет преобразовано опять же в INF, поэтому смотреть errno будет недостаточно.