阅读 1269

C++ String(字符串)和 float/double (浮点数)互转

在本教程中,我们将借助示例学习如何将字符串转换为浮点数,反之亦然。

C ++字符串与浮点数和双浮点数转换

将字符串转换为浮点数的最简单方法是使用以下C ++ 11函数:

  • std :: stof() - 将string转换为float

  • std :: stod() - 将string转换为double

  • std :: stold() - 将string转换为long double。

这些函数在string头文件中定义。

示例1:C ++字符串转换为浮点和双浮点数

示例

#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

示例2:将C ++ char数组转换为double

我们可以使用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 ++浮点和双浮点数转换为字符串

我们可以使用C ++ 11 std :: to_string()函数将float和double转换为字符串。 对于较旧的C ++编译器,我们可以使用std :: stringstream对象。

示例3:使用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 转换为 String = " << str1 << std::endl;
   std::cout << "Double 转换为 String = " << str2 << std::endl;

    return 0;
}

输出结果

Float 转换为 String = 123.456703Double 转换为 String = 123.456700

示例4:使用stringstream将浮点数和双浮点数转换为字符串

示例

#include <iostream>#include<string>#include<sstream> // 使用stringstreamint 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.457Double 转换为 String = 123.457


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐