strtod (“string-to-double”) function converts the initial
part of string to a floating-point number, which is returned as a
value of type
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,
a value of zero and the value returned in
*tailptr is the
value of string.
In a locale other than the standard
this function may recognize additional locale-dependent syntax.
If the string has valid syntax for a floating-point number but the value
is outside the range of a
strtod will signal
overflow or underflow as described in Math Error Reporting.
strtod recognizes four special input strings. The strings
"infinity" are converted to ∞,
or to the largest representable value if the floating-point format
doesn't support infinities. You can prepend a
to specify the sign. Case is ignored when scanning these strings.
)" are converted
to NaN. Again, case is ignored. If chars... are provided, they
are used in some unspecified fashion to select a particular
representation of NaN (there can be several).
Since zero is a valid result as well as the value returned on error, you
should check for errors in the same way as for
examining errno and tailptr.