C++ string to float and double Conversion
The easiest way to convert a string to a floating-point number is by using these C++11 functions:
- std::stof() - convert
string
tofloat
- std::stod() - convert
string
todouble
- std::stold() - convert
string
tolong double
.
These functions are defined in the string
header file.
Example 1: C++ string to float and double
#include <iostream>
#include <string>
int main() {
std::string str = "123.4567";
// convert string to float
float num_float = std::stof(str);
// convert string to double
double num_double = std::stod(str);
std:: cout<< "num_float = " << num_float << std::endl;
std:: cout<< "num_double = " << num_double << std::endl;
return 0;
}
Output
num_float = 123.457 num_double = 123.457
Example 2: C++ char Array to double
We can convert a char
array to double
by using the std::atof()
function.
#include <iostream>
// cstdlib is needed for atoi()
#include <cstdlib>
int main() {
// declaring and initializing character array
char str[] = "123.4567";
double num_double = std::atof(str);
std::cout << "num_double = " << num_double << std::endl;
return 0;
}
Output
num_double = 123.457
C++ float and double to string Conversion
We can convert float
and double
to string
using the C++11 std::to_string()
function. For the older C++ compilers, we can use std::stringstream
objects.
Example 3: float and double to string Using to_string()
#include <iostream>
#include <string>
int main() {
float num_float = 123.4567F;
double num_double = 123.4567;
std::string str1 = std::to_string(num_float);
std::string str2 = std::to_string(num_double);
std::cout << "Float to String = " << str1 << std::endl;
std::cout << "Double to String = " << str2 << std::endl;
return 0;
}
Output
Float to String = 123.456703 Double to String = 123.456700
Example 4: float and double to string Using stringstream
#include <iostream>
#include<string>
#include<sstream> // for using stringstream
int main() {
float num_float = 123.4567F;
double num_double = 123.4567;
// creating stringstream objects
std::stringstream ss1;
std::stringstream ss2;
// assigning the value of num_float to ss1
ss1 << num_float;
// assigning the value of num_float to ss2
ss2 << num_double;
// initializing two string variables with the values of ss1 and ss2
// and converting it to string format with str() function
std::string str1 = ss1.str();
std::string str2 = ss2.str();
std::cout << "Float to String = " << str1 << std::endl;
std::cout << "Double to String = " << str2 << std::endl;
return 0;
}
Output
Float to String = 123.457 Double to String = 123.457
Recommended Reading: C++ string to int.