在本教程中,我们将借助示例学习如何将字符串转换为浮点数,反之亦然。
将字符串转换为浮点数的最简单方法是使用以下C ++ 11函数:
std :: stof() - 将string转换为float
std :: stod() - 将string转换为double
std :: stold() - 将string转换为long double。
这些函数在string头文件中定义。
#include <iostream> #include <string> int main() { std::string str = "123.4567"; // 将字符串转换为浮点数 float num_float = std::stof(str); // 将字符串转换为双浮点数 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; }
输出结果
num_float = 123.457 num_double = 123.457
我们可以使用std::atof()函数将char数组转换为double。
#include <iostream> // atoi()需要cstdlib #include <cstdlib> int main() { // 声明和初始化字符数组 char str[] = "123.4567"; double num_double = std::atof(str); std::cout << "num_double = " << num_double << std::endl; return 0; }
输出结果
num_double = 123.457
我们可以使用C ++ 11 std :: to_string()函数将float和double转换为字符串。 对于较旧的C ++编译器,我们可以使用std :: stringstream对象。
#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 转换为 String = " << str1 << std::endl; std::cout << "Double 转换为 String = " << str2 << std::endl; return 0; }
输出结果
Float 转换为 String = 123.456703 Double 转换为 String = 123.456700
#include <iostream> #include<string> #include<sstream> // 使用stringstream int main() { float num_float = 123.4567F; double num_double = 123.4567; // 创建stringstream对象 std::stringstream ss1; std::stringstream ss2; // 将num_float的值分配给ss1 ss1 << num_float; // 将num_float的值分配给ss2 ss2 << num_double; //用ss1和ss2的值初始化两个字符串变量 //然后使用str()函数将其转换为字符串格式 std::string str1 = ss1.str(); std::string str2 = ss2.str(); std::cout << "Float 转换为 String = " << str1 << std::endl; std::cout << "Double 转换为 String = " << str2 << std::endl; return 0; }
输出结果
Float 转换为 String = 123.457 Double 转换为 String = 123.457
相关转换:将 C ++字符串转换为int。