关于string转int、float、double常用方法
需求:如上图为已经安装内存为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常用方法相关推荐
- 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 ...
- java中String与int/float/double/byte/数组
原文链接:小宁博客[添加链接描述](https://www.sunxiaoning.com/language/634.html) int转换为String(int i=100) 第一种方法:s=i+& ...
- 演示多组int,float,double的数与 2,2.0f,2.0d的除法运算和取模运算,如有兴趣,可自行分析对比结果
因为各种基本数据类型所占用的存储空间各不相同,所以在进行各种计算时,有可能存在精度题.计算机的操作要在内存中进行,而内存容量有限:另一方面,持久化存储设备的存储空间也有限,内存中的数据可能需要持久化保 ...
- c语言算式中有double和int,C语言当中int,float,double,char这四个有什么区别?
区别在以下方面: 一.定义方面: 1.int为整数型,用于定义整数类型的数据 . 2.float为单精度浮点型,能准确到小数点后六位 . 3.double为双精度浮点型,能准确到小数点都十二位 . 4 ...
- C语言的int, float,double相互转化 (从本质上理解可能的问题)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/github_33873969/article/details/78040129 从学了C语言之后,一 ...
- C 语言实例 - 计算 int, float, double 和 char 字节大小
C 语言实例 - 计算 int, float, double 和 char 字节大小C 语言实例 C 语言实例使用 sizeof 操作符计算int, float, double 和 char四种变量字 ...
- C++ int float double类型的数据大小端转化
以下代码抄自<网络多人游戏架构与编程>,可以支持float.int.double等数据类型数据的大小端转换,测试代码为: void TestByteSwap() {int32_t test ...
- JAVA string、int、 double 转换
1.查看数据类型 a.getClass().toString(); 2.string转int,如果 string中包含空格.包含小数点 会报错 string去掉空格: System.out.print ...
- C/C++语言中计算int,float,double,char四种数据类型所能表示的数据范围
char 1字节 short 2字节 int 4字节 long 4字节 long long 8字节 float ...
- 【编程】char unsigned int float double long 字节数
定义方面: 1.int为整数型,用于定义整数类型的数据 . 2.float为单精度浮点型,能准确到小数点后六位 . 3.double为双精度浮点型,能准确到小数点都十二位 . 4.char为字符型,用 ...
最新文章
- python excel操作单元格_python 操作excel表格的方法
- oracle for 记录数,可视化工具dbForge Documenter for Oracle全新上线!让您轻松记录Oracle数据库...
- 黄聪:VirtualBox 安装ghost版windows XP
- python hex 补0_Python保留前导零的二进制到十六进制转换
- 网络:TCP协议3次握手4次挥手
- 计算机基础- -认识磁盘
- JVM内存及GC回收
- java biginteger log_java – BigInteger:计算可伸缩方法中的小数位数
- 用OFFICE 2007发送的文章
- 1.3 线性回归的sklearn实现
- Atitit 算法原理与导论 目录 1. Attilax总结的有用算法 按用途分类	1 1.1. 排序算法 字符串匹配(String Matching)	1 1.2. 加密算法 编码算法 序列
- 基于ARM的SoC设计入门
- pow函数php,PHP pow( )用法及代码示例
- android计算器开发论文,基于Android计算器功能的实现毕业设计论文
- 使用Session+Cookie实现7天免登录
- CSDN读书频道也豆瓣了?
- SegmentFault Hackathon 文艺复兴今在沪举行
- 趣图丨阿里p6大概啥水平?是不是不行?
- 【愚公系列】2022年10月 微信小程序-电商项目-微信支付后端功能实现(node版)
- css flex布局 —— 容器属性 align-items
热门文章
- r语言quantmond_GitHub - QUANTAXIS/quant
- linux查看目录文件系统,ubuntu linux 文件系统目录结构-Windows下查看电脑信息的命令-linux菜鸟也必须知道的几个ubuntu最基础命令_169IT.COM...
- 湖南理工学院计算机老师信息,郭观七(计算机与信息工程系)老师 - 湖南理工学院 - 院校大全...
- Python教程:文件路径/目录获取教程
- python中创建对象的七种方式
- 计算机专业毕业生管理制度,管理制度建设
- java 动态创建实例_java – 有没有办法动态创建类(而不是实例)?
- 【opencv4】opencv视频教程 C++(opencv教程)2、加载imread()(以灰度加载),修改,保存图像
- Linux 交换空间优化(swap 优化)(积极使用交换空间占比,可能会使程序运行缓慢!)
- C语言visual studio警告:取消对NULL指针“p”的引用