Go to the previous, next section.

Parsing of Floats

These functions are declared in `stdlib.h'.

Function: double strtod (const char *string, char **tailptr)

The strtod ("string-to-double") function converts the initial part of string to a floating-point number, which is returned as a value of type double.

This function attempts to decompose string as follows:

If the string is empty, contains only whitespace, or does not contain an initial substring that has the expected syntax for a floating-point number, no conversion is performed. In this case, strtod returns a value of zero and the value returned in *tailptr is the value of string.

In a locale other than the standard "C" locale, this function may recognize additional locale-dependent syntax.

If the string has valid syntax for a floating-point number but the value is not representable because of overflow, strtod returns either positive or negative HUGE_VAL (see section Mathematics), depending on the sign of the value. Similarly, if the value is not representable because of underflow, strtod returns zero. It also sets errno to ERANGE if there was overflow or underflow.

Function: double atof (const char *string)

This function is similar to the strtod function, except that it need not detect overflow and underflow errors. The atof function is provided mostly for compatibility with existing code; using strtod is more robust.

Go to the previous, next section.