Caution: This version of this document is no longer maintained. For the latest documentation, see

wcstod(), wcstof(), wcstold()

Convert a wide-character string into a double, float, or long double


#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 );


A pointer to the string to parse.
If this argument isn't NULL, the function stores in it a pointer to the first unrecognized character found in the string.



Use the -l c option to qcc to link against this library. This library is usually included automatically.


These functions convert a wide-character string to a number:

These functions recognize strings containing the following:

The functions expect the string to have a plus or minus sign, followed by one of these forms:

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.

Note: Because 0 is a valid return that is also used for an error, you should set errno to 0 before calling these functions, and check errno again afterward. These functions don't change errno on success.


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.


ANSI, POSIX 1003.1

Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

errno wcrtomb(), wcsrtombs(), wcstoimax(), wcstoumax(), wcstok(), wcstol(), wcstoll(), wcstombs(), wcstoul(), wcstoull(), wctob(), wctomb()