Convert Double to String in C++



A double datatype is used to represent a decimal or exponential value and string represents a sequence of characters.

In this article, we are having a double value and our task is to convert the given double into string. Here is a list of approaches to convert double to string in C++ that we will be discussing in this article with stepwise explanation and complete example codes.

Using to_string() Function

In this approach, we have used the std::to_string() function for converting double into a string. The to_string() function converts the given double value into a string value.

Example

Here is an example where we have converted a double into a string using to_string():

#include <bits/stdc++.h>
using namespace std;

int main() {
    double num = 3.141592;
    string str = to_string(num);
    cout << "String value: " << str << endl;
    return 0;
}

Using ostringstream

You can use the ostringstream of <sstream> header for converting the double into a string.

Example

Here is an example of using 'ostringstream' for the conversion of double into a string:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {
    double num = 3.141592;
    ostringstream oss;
    oss << num;   //stores the double value in the oss stream
    string str = oss.str(); //converts the stream to string
    cout << "String value: " << str << endl;
    return 0;
}

Using stringstream

For converting a double another approach is using stringstream of <sstream> header. It is similar to the ostringstream used in the previous approach.

Example

The following example uses the stringstream and converts the given double value into a string:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;

int main() {
    double num = 3.141592;;
    stringstream ss;
    ss << num;
    string str = ss.str();
    cout << "String value:: " << str << endl;
    return 0;
}

Using sprintf() Function

In this approach of conversion of a double to string, we have used the sprintf() function of <cstdio> header. It stores the double value into a character buffer in decimal form using "%f". Then we convert the character buffer to a string using the string constructor.

Example

In this example, we have used the sprintf() function to convert the given double value into a string.

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

int main() {
    double num = 3.141592;;
    char buffer[50];
    sprintf(buffer, "%f", num);     // Stores num in buffer in decimal form
    string str(buffer);           // Converts buffer to string  
    cout << "String value: " << str << endl;
    return 0;
}

Using to_chars() Function

To convert a double into a string, we have used the to_chars() function of the <charconv> header. The to_chars() function converts the given double value to a character array.

  • Using the to_chars() function, we have converted the given double value to the character and stored them in the buffer.
  • The above step returns a pointer and an error code (ec).
  • Then using the string constructor, we convert the character in the range specified by pointer buffer to pointer.

Example

Here is an example of implementing the above-mentioned steps for converting a double value to a string:

#include <iostream>
#include <charconv>
#include <string>
using namespace std;

int main() {
    double num = 3.141592;;
    char buffer[32];

    //Converts num to character and stores them in buffer 
    auto [pointer, ec] = to_chars(buffer, buffer + sizeof(buffer), num);  

    //Converts the character array to string  
    string str(buffer, pointer);
    cout << "String value: " << str << endl;
    return 0;
}
Updated on: 2025-04-11T17:13:47+05:30

30K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements