atof
, atoff
—string to double or floatSynopsis
#include <stdlib.h> double atof(const char *s); float atoff(const char *s);
Description
atof
converts the initial portion of a string to a double
.
atoff
converts the initial portion of a string to a float
.
The functions parse the character string s, locating a substring which can be converted to a floating-point value. The substring must match the format:
[+|-]digits[.][digits][(e|E)[+|-]digits]
The substring converted is the longest initial
fragment of s that has the expected format, beginning with
the first non-whitespace character. The substring
is empty if str
is empty, consists entirely
of whitespace, or if the first non-whitespace character is
something other than +
, -
, .
, or a digit.
atof(s)
is implemented as strtod(s, NULL)
.
atoff(s)
is implemented as strtof(s, NULL)
.
Returns
atof
returns the converted substring value, if any, as a
double
; or 0.0
, if no conversion could be performed.
If the correct value is out of the range of representable values, plus
or minus HUGE_VAL
is returned, and ERANGE
is stored in
errno
.
If the correct value would cause underflow, 0.0
is returned
and ERANGE
is stored in errno
.
atoff
obeys the same rules as atof
, except that it
returns a float
.
Portability
atof
is ANSI C. atof
, atoi
, and atol
are subsumed by strod
and strol
, but are used extensively in existing code. These functions are
less reliable, but may be faster if the argument is verified to be in a valid
range.
Supporting OS subroutines required: close
, fstat
, isatty
,
lseek
, read
, sbrk
, write
.