wcstof, wcstod, wcstold
Header: <wchar.h>
Interprets a floating-point value in a wide string pointed to by str.
# Declarations
float wcstof( const wchar_t* restrict str, wchar_t** restrict str_end );
(since C99)
double wcstod( const wchar_t* str, wchar_t** str_end );
(since C95) (until C99)
double wcstod( const wchar_t* restrict str, wchar_t** restrict str_end );
(since C99)
long double wcstold( const wchar_t* restrict str, wchar_t** restrict str_end );
(since C99)
# Parameters
str: pointer to the null-terminated wide string to be interpretedstr_end: pointer to a pointer to a wide character.
# Return value
Floating-point value corresponding to the contents of str on success. If the converted value falls out of range of corresponding return type, range error occurs and HUGE_VAL, HUGE_VALF or HUGE_VALL is returned. If no conversion can be performed, 0 is returned.
# Example
#include <errno.h>
#include <stdio.h>
#include <wchar.h>
int main(void)
{
const wchar_t* p = L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 1.18973e+4932zzz";
printf("Parsing L\"%ls\":\n", p);
wchar_t* end;
for (double f = wcstod(p, &end); p != end; f = wcstod(p, &end))
{
printf("'%.*ls' -> ", (int)(end-p), p);
p = end;
if (errno == ERANGE){
printf("range error, got ");
errno = 0;
}
printf("%f\n", f);
}
}