#include <stdlib.h>
double strtod(const char *nptr, char **endptr);
double atof(const char *nptr);
MT-Safe
strtod() recognizes an optional string of ‘‘white-space’’ characters (as defined by isspace() in ctype(3C) ), then an optional sign, then a string of digits optionally containing a decimal point character, then an optional exponent part including e or E followed by an optional sign, followed by an integer. The decimal point character is defined by the program’s locale (category LC_NUMERIC ). In the "C" locale, or in a locale where the decimal point character is not defined, the decimal point character defaults to a period (.).
If the value of endptr is not (char **)NULL , a pointer to the character terminating the scan is returned in the location pointed to by endptr. If no number can be formed, *endptr is set to nptr, and zero is returned.
atof(nptr)
is equivalent to:
strtod(nptr, (char **)NULL
).
If the correct value would cause overflow, ±HUGE is returned (according to the sign of the value), and errno is set to ERANGE .
If the correct value would cause underflow, 0 is returned and errno is set to ERANGE .
When the -Xc or -Xa compilation options are used, HUGE_VAL is returned instead of HUGE .
If nptr is NaN, then atof() returns NaN.