Справочник по C/C++
strtod()

#include 
double strtod(const char * start, char **end);

Описание

Преобразует строковое представление числа в значение типа double

Функция strtod() преобразует строковое представление числа, которое содержится в строке, адресуемой параметром start, в значение типа double и возвращает полученный результат.

В версии С99 к параметрам start и end применен квалификатор restrict.

Функция strtod() работает следующим образом. Сначала в строке, адресуемой параметром start, удаляется любой пробельный символ. Затем читается каждый символ, составляющий число. Любой символ, который не может быть частью числа с плавающей точкой, приведет к остановке процесса преобразования. К ним относятся пробельные символы, знаки препинания (но не точки) и символы, отличные от букв "Е" и "е". Наконец, параметр end устанавливается так, чтобы указывать на "непреобразованный" остаток исходной строки, если таковой существует. Это означает, что, если функция strtod() вызывается с аргументом "100.00 Pliers", то она возвратит значение 100.00, а параметр end будет указывать на пробел, предшествующий слову "Pliers".

При возникновении переполнения функция strtod() возвращает либо значение HUGE_VAL, либо значение -HUGE_VAL(означающее положительное или отрицательное переполнение соответственно), а глобальная переменная errno устанавливается равной значению ERANGE, свидетельствующему об ошибке пределов диапазона. При потере точности возвращается нуль и глобальная переменная errno устанавливается равной значению ERANGE. Если параметр start не указывает на числ(), никакого преобразования не выполняется и функция возвращает нуль.