wcstod(), wcstof(), wcstold()
Convert a wide-character string into a double, float, or long double
Synopsis:
#include <wchar.h>
double wcstod( const wchar_t * ptr,
wchar_t ** endptr );
float wcstof( const wchar_t * ptr,
wchar ** endptr );
long double wcstold( const wchar_t * ptr,
wchar ** endptr );
Arguments:
- nptr
- A pointer to the string to parse.
- endptr
- If this argument isn't NULL, the function stores in it a pointer to the first unrecognized character found in the string.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
These functions convert a wide-character string to a number:
- wcstod() function converts it to a double
- wcstof() converts it to a float
- wcstold() to a long double
These functions recognize strings containing the following:
- optional white space
- an optional plus or minus sign
- a sequence of digits containing an optional decimal point
- an optional
e
orE
, followed by an optionally signed sequence of digits
The functions expect the string to have a plus or minus sign, followed by one of these forms:
- a sequence of decimal digits, optionally followed by a radix character, optionally followed by an exponent part
- a
0x
or0X
followed by a sequence of hexadecimal digits, optionally followed by a radix character, optionally followed by a binary exponent part - the case-insensitive string
INF
orINFINITY
- the case-insensitive string
NAN
orNAN(n-wchar-sequence)
, where n-wchar-sequence may be a digit, a nondigit, a n-wchar-sequence digit, or a n-wchar-sequence nondigit
The value is correctly rounded if the subject is hexadecimal and FLT_RADIX is 2.
The radix character is locale specific, depending upon LC_NUMERIC.
The conversion ends at the first unrecognized character. If endptr isn't NULL, a pointer to the unrecognized wide character is stored in the object endptr points to.
Returns:
The converted value. If the correct value would cause overflow, plus or minus HUGE_VAL is returned according to the sign, and errno is set to ERANGE. If the correct value would cause underflow, then zero is returned, and errno is set to ERANGE.
Zero is returned when the input string can't be converted. When an error occurs, errno indicates the error detected.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |