Описание тега strtod

NoneStrtod - это функция стандартной библиотеки C для преобразования строки ASCII в число с плавающей запятой.

strtodэто функция стандартной библиотеки C (находится в стандарте ANSI, раздел 2.13.2.4 - находится вstdlib.h), который преобразует строку в число с плавающей запятой.


double strtod(const char *ptr, char **endptr)

  • ptr: указатель на строку, которая будет преобразована
  • endptr: указатель на то, где произошло последнее успешное совпадение символов.

    Например, позвонив strtod на веревочке "123abc" дает endptr, который равен ptr + 3. Это часто используется, чтобы проверить, правильно ли прошло преобразование строки - если преобразование не произошло, то*endptr == ptr.

    Обратите внимание, что этого не происходит, если endptr равен NULL.


Согласно ANSI,

Число может состоять из необязательного знака, строки цифр с необязательным десятичным знаком и необязательных e или E, за которыми следует необязательно знаковая экспонента.

(Это позволяет использовать как "нормальные" десятичные числа, так и научную запись).

Когда в конвертере происходит переполнение или недостаточное заполнение, errno установлен на ERANGE и либо 0 (для недополнения), либо HUGE_VAL (для переполнения) - поэтому рекомендуется очистить errno перед вызовом этой функции, иначе невозможно различить ошибку потери значимости и преобразование из "0".