STRTOD(3)



STRTOD(3)                      Library functions                     STRTOD(3)

NAME
       strtod, strtof, strtold - convert ASCII string to floating point number

SYNOPSIS
       #include <stdlib.h>

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

       #define _XOPEN_SOURCE=600   /* or #define _ISOC99_SOURCE */
       #include <stdlib.h>

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

DESCRIPTION
       The strtod(), strtof(), and strtold()  functions  convert  the  initial
       portion  of  the  string  pointed to by nptr to double, float, and long
       double representation, respectively.

       The expected form of the (initial portion of the)  string  is  optional
       leading  white  space  as  recognized  by  isspace(3), an optional plus
       (``+'') or minus sign (``-'') and then either (i) a decimal number,  or
       (ii)  a hexadecimal number, or (iii) an infinity, or (iv) a NAN (not-a-
       number).

       A decimal number consists of a nonempty sequence of decimal digits pos-
       sibly  containing  a  radix character (decimal point, locale dependent,
       usually ``.''), optionally followed by a decimal exponent.   A  decimal
       exponent consists of an ``E'' or ``e'', followed by an optional plus or
       minus sign, followed by a non-empty sequence  of  decimal  digits,  and
       indicates multiplication by a power of 10.

       A  hexadecimal  number  consists  of  a  ``0x'' or ``0X'' followed by a
       nonempty sequence of hexadecimal digits  possibly  containing  a  radix
       character,  optionally followed by a binary exponent. A binary exponent
       consists of a ``P'' or ``p'', followed by an  optional  plus  or  minus
       sign, followed by a non-empty sequence of decimal digits, and indicates
       multiplication by a power of 2.  At least one of  radix  character  and
       binary exponent must be present.

       An infinity is either ``INF'' or ``INFINITY'', disregarding case.

       A  NAN  is  ``NAN''  (disregarding  case) optionally followed by `(', a
       sequence of characters, followed by ')'.  The character  string  speci-
       fies in an implementation-dependent way the type of NAN.

RETURN VALUE
       These functions return the converted value, if any.

       If  endptr is not NULL, a pointer to the character after the last char-
       acter used in the conversion is stored in the  location  referenced  by
       endptr.

       If  no  conversion is performed, zero is returned and the value of nptr
       is stored in the location referenced by endptr.

       If the correct value would  cause  overflow,  plus  or  minus  HUGE_VAL
       (HUGE_VALF,  HUGE_VALL)  is  returned  (according  to  the  sign of the
       value), and ERANGE is stored in errno.   If  the  correct  value  would
       cause underflow, zero is returned and ERANGE is stored in errno.

ERRORS
       ERANGE Overflow or underflow occurred.

CONFORMING TO
       C89 describes strtod(), C99 describes the other two functions.

NOTES
       Since  0  can legitimately be returned on both success and failure, the
       calling program should set errno to 0 before the call, and then  deter-
       mine  if  an  error  occurred  by checking whether errno has a non-zero
       value after the call.

EXAMPLE
       See the example on the strtol(3) manual page; the use of the  functions
       described in this manual page is similar.

SEE ALSO
       atof(3), atoi(3), atol(3), strtol(3), strtoul(3)

Linux                             2001-06-07                         STRTOD(3)

Man(1) output converted with man2html
list of all man pages