strtod(3C)

strtod, atof, strtold, atold - convert string to double-precision or long double-precision number

As shipped in IRIX 6.5.19. Last changed in IRIX 6.5.19.

NAME
     strtod, atof, strtold, atold - convert string to double-precision or long
     double-precision number

SYNOPSIS
     #include <stdlib.h>

     double strtod (const char *nptr, char **endptr);

     double atof (const char *nptr);

     long double strtold (const char *nptr, char **endptr);

     long double atold (const char *nptr);

DESCRIPTION
     (Note that the long double routines are only valid for the MIPSpro
     compilers.)

     strtod returns as a double-precision floating-point number the value
     represented by the character string pointed to by nptr.
     Similarly, strtold returns as a long double-precision floating-point
     number the value represented by the character string pointed to by nptr.
     Each function scans the string up to the first unrecognized character.

     strtod and strtold recognize 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
     [as specified by the current locale; see setlocale(3C)], then an optional
     exponent part including an e or E followed by an optional sign, followed
     by an integer.

     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).

     atold(nptr) is equivalent to:
          strtold(nptr, (char **)NULL).

SEE ALSO
     ctype(3C), strtol(3C), scanf(3S).

NOTE
     Precision may be silently lost if the number of digits comprising the
     floating-point number (i.e., not including the exponent) exceeds the
     value of the constant DBL_DIG (LDBL_DIG) in <float.h>.
     As of IRIX 6.5.18, these functions accept hex strings of the form
     0x1.xxxpnn, which are floating point constants. A floating constant has a
     significand part that can be followed by an exponent part and a suffix
     that specifies its type. The significand may include a digit sequence
     that represents the whole-number part, followed by a period, followed by
     a digit sequence that represents the fraction part. The exponent part is
     composed of e, E, p, or P followed by an exponent that may contain an
     optionally signed digit sequence. Either the whole number part or the
     fraction part must be present; for decimal floating constants, either the
     period or the exponent part has to be present. Example: 0x1.fffp+10.

DIAGNOSTICS
     If the correct value would cause overflow, +/-HUGE_VAL 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.