strtod(3C)
NAME
strtod, atof − convert string to double-precision number
SYNOPSIS
#include <stdlib.h>
double strtod(const char ∗nptr, char ∗∗endptr);
double atof(const char ∗nptr);
MT-LEVEL
MT-Safe
DESCRIPTION
strtod() returns as a double-precision floating-point number the value represented by the character string pointed to by nptr. The string is scanned up to the first unrecognized character.
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 an 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).
RETURN VALUES
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, zero is returned and errno is set to ERANGE.
When the −Xc or −Xa compilation options are used, HUGE_VAL is returned instead of HUGE.
SEE ALSO
ctype(3C), scanf(3S), strtol(3C)
SunOS 5.2 — Last change: 22 Jan 1993