strtod, strtof, strtold - конвертируют строки ASCII в число с плавающей запятой
НАЗВАНИЕstrtod, strtof, strtold - конвертируют строки ASCII в
число с плавающей запятой
СИНТАКСИС
#include
double strtod(const char *nptr, char **endptr);
float strtof(const char *nptr, char **endptr);
long double strtold(const char *nptr, char **endptr);
ОПИСАНИЕ
Функции strtod, strtof, и strtold преобразуют начальную
часть строки, на которую указывает nptr , соответственно в
числа типа double, float, и long double . Ожидаемый вид
строки (ее начальная часть) - это несколько пробелов,
распознаваемых функцией isspace(3), возможно знаки плюс
(``+'') или минус (``-''), а затем либо (i) десятичное
число, либо (ii) шестнадцатеричное число, либо (iii)
бесконечность, либо (iv) нечисловое значение (NAN - not-a-
number).
Десятичное число состоит из непустной последовательности
цифр от 0 до 9, возможно содержащей символ дробного
разделителя (десятичная точка, зависит от настройки
локали; обычно это символ точки - ``.''), возможно с
последующей десятичной экспонентой. Десятичная экспонента
состоит из символа ``E'' или ``e'', далее возможен знак
плюс или минус, а затем непустая последовательность
десятичных цифр, означающая умножение всей начальной части
на 10 в указанной степени.
Шестнадцатеричное число состоит из символов ``0x'' или
``0X'' с последующей непустой последовательностью из
шестнадцатеричных цифр, возможно содержащей символ
дробного разделителя, далее может следовать двоичная
экспонента. Двоичная экспонента состоит из символа ``P''
или ``p'', далее, возможно, знака плюс или минус, и
непустой последовательности десятичных цифр, обозначающих
умножение всего начального числа на 2 в указанной степени.
По меньшей мере должен быть указан либо символ дробного
разделителя либо бинарная экспонента.
Бесконечноть - это либо значение ``INF'' либо ``INFIN-
ITY'', независимо от режима символов.
Нечисловое значение (NAN) - это значение ``NAN'' (не
зависимо от режима символов), возможно сопровождаемое `(',
последовательностью символов, и затем ')'.
Последовательность символов определяет тип нечислового
значения в зависимости от текущей представления NAN в
системе.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Функции возвращают преобразованное значение, если таковое
существует. Если endptr не равно NULL, то указатель на
символ, следующий за последним обработанным символом,
сохраняется в endptr. Если не производится никаких
преобразований, то возвращается ноль, а значение nptr
сохраняется в той позиции, на которую ссылается endptr.
Если правильное значение вызовет "переполнение" (over-
flow), то возвращается значение плюс или минус HUGE_VAL
(HUGE_VALF, HUGE_VALL) (в зависимости от знака величины),
а ERANGE записывается в переменную errno. Если правильное
значение будет настолько маленьким, что им можно будет
пренебречь, то возвращается ноль, а переменной errno
присваивается значение ERANGE.
КОДЫ ОШИБОК
ERANGE:
величина оказалась слишком большой или очень
маленькой.
СООТВЕТСТВИЕ СТАНДАРТАМ
ANSI C описывает функцию strtod, а стандарт C99 описывает
остальные две функции.