需求:如上图为已经安装内存为8589934592Byte,字符串格式为string,需将其转换为GB显示给用户,格式依然为string;

问题:

//前部代码省略,通过命令行获取到str,这里直接将结果赋值给str
string str = "8589934592";
int n = atoi(str.c_str());
n=n/(1024*1024*1024);
char p[100]={0};
itoa(n,p,10);
str=p;
cout<<p<<endl;//输出结果为1,为什么?

分析:

通过单步调试,发现int越界,atoi处已经越界,int范围“-2147483648~2147483647”(32位),可看出最大2开头十位数,然而实际已经8开头十位数了,然而编译器并没有报错,直接给最大数,运算后为1

解决办法:

1、变量定义成float类型;

2、string转int用sscanf;

3、int转string用sprintf;

TIP:1、int超过十位数建议预判越界问题;

2、sprintf和sscanf在C++功能很强大,在某些情况下远远超过atoi等这类。

关于string转int、float、double常用方法相关推荐

  1. string转int/float/double、int/float/double转string、转字符串数组的方法:stoi、stringstream、scanf、to_string、sprintf

    一.string转化为数字 1.使用stoi #include <iostream> #include <string> using namespace std; int ma ...

  2. java中String与int/float/double/byte/数组

    原文链接:小宁博客[添加链接描述](https://www.sunxiaoning.com/language/634.html) int转换为String(int i=100) 第一种方法:s=i+& ...

  3. 演示多组int,float,double的数与 2,2.0f,2.0d的除法运算和取模运算,如有兴趣,可自行分析对比结果

    因为各种基本数据类型所占用的存储空间各不相同,所以在进行各种计算时,有可能存在精度题.计算机的操作要在内存中进行,而内存容量有限:另一方面,持久化存储设备的存储空间也有限,内存中的数据可能需要持久化保 ...

  4. c语言算式中有double和int,C语言当中int,float,double,char这四个有什么区别?

    区别在以下方面: 一.定义方面: 1.int为整数型,用于定义整数类型的数据 . 2.float为单精度浮点型,能准确到小数点后六位 . 3.double为双精度浮点型,能准确到小数点都十二位 . 4 ...

  5. C语言的int, float,double相互转化 (从本质上理解可能的问题)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/github_33873969/article/details/78040129 从学了C语言之后,一 ...

  6. C 语言实例 - 计算 int, float, double 和 char 字节大小

    C 语言实例 - 计算 int, float, double 和 char 字节大小C 语言实例 C 语言实例使用 sizeof 操作符计算int, float, double 和 char四种变量字 ...

  7. C++ int float double类型的数据大小端转化

    以下代码抄自<网络多人游戏架构与编程>,可以支持float.int.double等数据类型数据的大小端转换,测试代码为: void TestByteSwap() {int32_t test ...

  8. JAVA string、int、 double 转换

    1.查看数据类型 a.getClass().toString(); 2.string转int,如果 string中包含空格.包含小数点 会报错 string去掉空格: System.out.print ...

  9. C/C++语言中计算int,float,double,char四种数据类型所能表示的数据范围

    char        1字节    short       2字节    int         4字节    long        4字节    long long   8字节    float ...

  10. 【编程】char unsigned int float double long 字节数

    定义方面: 1.int为整数型,用于定义整数类型的数据 . 2.float为单精度浮点型,能准确到小数点后六位 . 3.double为双精度浮点型,能准确到小数点都十二位 . 4.char为字符型,用 ...

最新文章

  1. python excel操作单元格_python 操作excel表格的方法
  2. oracle for 记录数,可视化工具dbForge Documenter for Oracle全新上线!让您轻松记录Oracle数据库...
  3. 黄聪:VirtualBox 安装ghost版windows XP
  4. python hex 补0_Python保留前导零的二进制到十六进制转换
  5. 网络:TCP协议3次握手4次挥手
  6. 计算机基础- -认识磁盘
  7. JVM内存及GC回收
  8. java biginteger log_java – BigInteger:计算可伸缩方法中的小数位数
  9. 用OFFICE 2007发送的文章
  10. 1.3 线性回归的sklearn实现
  11. Atitit 算法原理与导论 目录 1. Attilax总结的有用算法 按用途分类 1 1.1. 排序算法 字符串匹配(String Matching) 1 1.2. 加密算法 编码算法 序列
  12. 基于ARM的SoC设计入门
  13. pow函数php,PHP pow( )用法及代码示例
  14. android计算器开发论文,基于Android计算器功能的实现毕业设计论文
  15. 使用Session+Cookie实现7天免登录
  16. CSDN读书频道也豆瓣了?
  17. SegmentFault Hackathon 文艺复兴今在沪举行
  18. 趣图丨阿里p6大概啥水平?是不是不行?
  19. 【愚公系列】2022年10月 微信小程序-电商项目-微信支付后端功能实现(node版)
  20. css flex布局 —— 容器属性 align-items

热门文章

  1. r语言quantmond_GitHub - QUANTAXIS/quant
  2. linux查看目录文件系统,ubuntu linux 文件系统目录结构-Windows下查看电脑信息的命令-linux菜鸟也必须知道的几个ubuntu最基础命令_169IT.COM...
  3. 湖南理工学院计算机老师信息,郭观七(计算机与信息工程系)老师 - 湖南理工学院 - 院校大全...
  4. Python教程:文件路径/目录获取教程
  5. python中创建对象的七种方式
  6. 计算机专业毕业生管理制度,管理制度建设
  7. java 动态创建实例_java – 有没有办法动态创建类(而不是实例)?
  8. 【opencv4】opencv视频教程 C++(opencv教程)2、加载imread()(以灰度加载),修改,保存图像
  9. Linux 交换空间优化(swap 优化)(积极使用交换空间占比,可能会使程序运行缓慢!)
  10. C语言visual studio警告:取消对NULL指针“p”的引用