STRTOD

NAME SYNOPSIS DESCRIPTION RETURN VALUE ERRORS CONFORMING TO SEE ALSO

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

**#include **

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

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 *is-
space*(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 possibly 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 specifies in an
implementation-dependent way the type of NAN.

These functions return the converted value, if any.

If *endptr* is not **NULL**, a pointer to the
character after the last character 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*.

**ERANGE**

Overflow or underflow occurred.

ANSI C describes **strtod**, C99 describes the other two
functions.

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

14 pages link to strtod(3):

This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.