man Pages(3): Library Routines
この本のみを検索
PDF 文書ファイルをダウンロードする

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 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, * endptris set to nptr, and zero is returned.
atof(nptr) is equivalent to:
strtod(nptr, (char ** )NULL ).
LC_NUMERIC
Determines how strtod and atof handle numeric formats. In the "C" locale, numeric handling follows the U.S. rules.

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, 0 is returned and errno is set to ERANGE .
When the -Xc or -Xa compilation options are used, HUGE_VAL is returned instead of HUGE .
If nptr is NaN, then atof( ) returns NaN.

FILES

/usr/lib/locale/locale/LC_NUMERIC /numeric
LC_NUMERIC database for locale

SEE ALSO

ctype(3C), matherr(3M), scanf(3S), strtol(3C), math(5)