当前位置: 首页 > article >正文

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

文章目录

  • 1.C ++字符串与浮点数和双浮点数转换
        • 示例1:C ++字符串转换为浮点和双浮点数
        • 示例2:将C ++ char数组转换为double
  • 2.C ++浮点和双浮点数转换为字符串
        • 示例3:使用to_string()将浮点数和双浮点数转换为字符串
        • 示例4:使用stringstream将浮点数和双浮点数转换为字符串

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

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

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

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

示例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;
}
示例2:将C ++ 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;
}

2.C ++浮点和双浮点数转换为字符串

示例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;
}
示例4:使用stringstream将浮点数和双浮点数转换为字符串
#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;
}

http://www.kler.cn/a/427517.html

相关文章:

  • Photohop关于数位板没有压力感,PS画笔的钢笔压力总是显示感叹号的问题解放方法
  • 嵌入式硬件设计 — 智能设备背后的隐形架构大师
  • redis实现基础分布式锁,自动续期,可重入分布式锁
  • 获取小数的整数和小数部分
  • 函数与模块
  • SQL高级应用——索引与视图
  • 【解决pycharm下site-packages文件标记为红色的问题】
  • 深度学习-54-AI应用实战之基于Yolo8的钢材表面缺陷检测
  • 1.mysql基础架构一条SQL查询语句是如何执行的?
  • 计算机网络原理之HTTP与HTTPS
  • 深入浅出 :理解 Go 的基本语法
  • 什么是 Gerotor 泵?他有什么特点?和齿轮有啥关系?
  • SPI驱动模型框架及spidev.c分析---学习记录
  • STP-面试-1
  • 链表头文件大更新!!!
  • 环形链表 (简单易懂)
  • selenium爬虫
  • 获取海康综合安防管理平台(区域,监控点,时效性rtsp流)数据
  • 1207论文速读
  • DICOM医学影象应用篇——多平面重建(MPR)在DICOM医学影像中的应用详解