The wcstod() function converts the wide string as a double. This function interprets the contents of a wide string as a floating point number. If endString is not a null pointer, the function also sets the value of endString to point to the first character after the number.
Syntax:
double wcstod( const wchar_t* str, wchar_t** str_end )
Parameters: The function accepts two mandatory parameters which are described below:
- string: specifies the string which begins with the representation of a floating-point number
- endString: specifies the pointer to a wide character
Return value: The function returns two value as below:
- On success, the function returns the converted floating point number as a value of type double.
- If no valid conversion could be performed, it returns 0.0 .
- If the correct value is out of the range of representable values for the type, a positive or negative HUGE_VAL is returned, and errno is set to ERANGE.
- If the correct value would cause underflow, the function returns a value whose magnitude is no greater than the smallest normalized positive number (some library implementations may also set errno to ERANGE in this case).
Below programs illustrate the above function:
Program 1 :
// C++ program to illustrate // wcstod() function #include <bits/stdc++.h> using namespace std;
int main()
{ // initialize the wide string
// beginning with the floating point number
wchar_t string[] = L "95.6Geek" ;
// Pointer to a pointer to a wide character
wchar_t * endString;
// Convert wide string to double
double value = wcstod(string, &endString);
// print the string, starting double value
// and its endstring
wcout << L "String -> " << string << "\n" ;
wcout << L "Double value -> " << value << "\n" ;
wcout << L "End String is : " << endString << "\n" ;
return 0;
} |
Output:
String -> 95.6Geek Double value -> 95.6 End String is : Geek
Program 2 :
// C++ program to illustrate // wcstod() function // with no endString characters #include <bits/stdc++.h> using namespace std;
int main()
{ // initialize the wide string
// beginning with the floating point number
wchar_t string[] = L "10.6464" ;
// Pointer to a pointer to a wide character
wchar_t * endString;
// Convert wide string to double
double value = wcstod(string, &endString);
// print the string, starting double value
// and its endstring
wcout << L "String -> " << string << "\n" ;
wcout << L "Double value -> " << value << "\n" ;
wcout << L "End String is : " << endString << "\n" ;
return 0;
} |
Output:
String -> 10.6464 Double value -> 10.6464 End String is :
Program 3 :
// C++ program to illustrate // wcstod() function // with whitespace present at the beginning #include <bits/stdc++.h> using namespace std;
int main()
{ // initialize the wide string
// beginning with the floating point number
wchar_t string[] = L " 99.999Geek" ;
// Pointer to a pointer to a wide character
wchar_t * endString;
// Convert wide string to double
double value = wcstod(string, &endString);
// print the string, starting double value
// and its endstring
wcout << L "String -> " << string << "\n" ;
wcout << L "Double value -> " << value << "\n" ;
wcout << L "End String is : " << endString << "\n" ;
return 0;
} |
Output:
String -> 99.999Geek Double value -> 99.999 End String is : Geek