strtod

STRTOD(3)                Руководство программиста Linux                STRTOD(3)



ИМЯ
       strtod, strtof, strtold - преобразует строку ASCII в число с плавающей
       точкой

ОБЗОР
       #include <stdlib.h>

       double strtod(const char *nptr, char **endptr);
       float strtof(const char *nptr, char **endptr);
       long double strtold(const char *nptr, char **endptr);

   Требования макроса тестирования свойств для glibc (см.
   feature_test_macros(7)):

       strtof(), strtold():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

ОПИСАНИЕ
       Функции strtod(), strtof() и strtold() преобразуют начальную часть
       строки, на которую указывает nptr, в числа типа double, float, и long
       double, соответственно.

       Ожидаемый вид строки (её начальная часть) — это начальные пробельные
       символы (необязательно), распознаваемые функцией isspace(3), возможно
       знаки плюс ('+') или минус ('-'), а затем либо (а) десятичное число, либо
       (б) шестнадцатеричное число, либо (в) бесконечность, либо (г) NAN
       (not-a-number, нечисловое значение).

       Десятичное число состоит из не пустной последовательности десятичных цифр
       от 0 до 9, возможно содержащей символ дробного разделителя (десятичная
       точка, зависит от настройки локали; обычно это символ точки '.'),
       возможно с последующей десятичной экспонентой. Десятичная экспонента
       состоит из символа 'E' или 'e', далее возможен знак плюс или минус, а
       затем непустая последовательность десятичных цифр, означающая умножение
       всей начальной части на 10 в указанной степени.

       Шестнадцатеричное число состоит из символов «0x» или «0X» с последующей
       непустой последовательностью из шестнадцатеричных цифр, возможно
       содержащей символ дробного разделителя, далее может следовать двоичная
       экспонента. Двоичная экспонента состоит из символа 'P' или 'p', далее,
       возможно, знака плюс или минус, и непустой последовательности десятичных
       цифр, обозначающих умножение всего начального числа на 2 в указанной
       степени. По меньшей мере должен быть указан либо символ дробного
       разделителя либо двоичная экспонента.

       Бесконечность — это либо значение «INF» либо «INFINITY», регистр символов
       не учитывается.

       Нечисловое значение (NAN) — это значение «NAN» (регистр символов не
       учитывается) возможно сопровождаемое (последовательность n символов), где
       последовательность n символов, определяет тип нечислового значения в
       зависимости от текущего представления NAN в системе (смотрите ЗАМЕЧАНИЯ).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
       Функции возвращают преобразованное значение, если таковое существует.

       Если endptr не равно NULL, то указатель на символ, следующий за последним
       обработанным символом, сохраняется в место, указываемое endptr.

       Если никаких преобразований не производилось, то возвращается ноль, а
       значение nptr сохраняется в той позиции, на которую ссылается endptr
       (если endptr не равно null).

       Если правильное значение вызвало бы переполнение (overflow), то
       возвращается HUGE_VAL (HUGE_VALF, HUGE_VALL)  (в зависимости от знака
       величины), а ERANGE записывается в переменную errno. Если правильное
       значение было бы настолько маленьким, что им можно будет пренебречь, то
       возвращается ноль, а переменной errno присваивается значение ERANGE.

ОШИБКИ
       ERANGE Величина оказалась слишком большой или очень маленькой.

АТРИБУТЫ
       Описание терминов данного раздела смотрите в attributes(7).

       ┌──────────────────────────────┬──────────────────────┬────────────────┐
       │Интерфейс                     Атрибут              Значение       │
       ├──────────────────────────────┼──────────────────────┼────────────────┤
       │strtod(), strtof(), strtold() │ Безвредность в нитях │ MT-Safe locale │
       └──────────────────────────────┴──────────────────────┴────────────────┘
СООТВЕТСТВИЕ СТАНДАРТАМ
       POSIX.1-2001, POSIX.1-2008, C99.

       strtod() была также описана в C89.

ЗАМЕЧАНИЯ
       Так как возвращаемым значением может быть 0 при успешном выполнении и
       ошибке, вызывающая программа должна присвоить errno значение 0 до вызова,
       а после вызова определить возникновение ошибки по ненулевому значению
       errno.

       В реализации glibc последовательность n символов, которая может
       появляться после «NAN», рассматривается как целое число (с необязательным
       префиксом «0» или «0x» для указания системы счисления 8 или 16), которое
       будет помещено в мантиссу возвращаемого значения.

ПРИМЕР
       Пример можно найти в справочной странице strtol(3); в ней показано
       использование похожих функций.

СМОТРИТЕ ТАКЖЕ
       atof(3), atoi(3), atol(3), nan(3), nanf(3), nanl(3), strtol(3),
       strtoul(3)



Linux                              2016-03-15                          STRTOD(3)