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