Open In App

wcstod() function in C/C++

Improve
Improve
Like Article
Like
Save
Share
Report

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


Last Updated : 17 Sep, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads