STRTOD - convert string to double precision number.
dx = strtod( s, p );
const char *s;
is the string to be converted into a double precision number. This string may consist of any number of blanks and/or tabs, possibly followed by a sign, followed by a string of digits that may contain a decimal point, then an "e" or "E" possibly followed by a sign, followed by an integer. It may also be in the hexadecimal format used by the "%a" format of "printf".
points to a pointer that will be set to the character immediately following the double precision number in the string "s". For example, with
s = "1.23y";
dx = strtod(s,p);
a pointer to the character 'y' would be placed in "*p". If no floating point number can be formed from "s", "*p" points to the first character of "s". If "p" is the NULL pointer, this sort of action does not take place.
is the double precision number obtained from "s". If no conversion could be performed (because the string didn't start with a valid number), 0.0 is returned. If there was an overflow, "strtod" sets "errno" to ERANGE and returns positive or negative HUGE_VAL (where HUGE_VAL is a large positive double value defined in <math.h>). It there was an underflow, "strtod" returns 0.0.
"strtod" converts the string "s" into a double precision number. Conversion stops with the first character that cannot be part of such a number.