码迷,mamicode.com
首页 > 其他好文 > 详细

转换数据类型

时间:2020-10-09 21:35:18      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:类型   sig   隐式转换   span   符号   convert   之间   库函数   数值计算   

数据在计算机中以二进制的形式保存,数据类型只是人为定义的一种解读位码的一种方式。先讨论整数之间的转换,对于长度相同的数据类型,相互转化时只是改变了解读的方式,但是并没有改变位值,比如int和unsigned int;将精度低的转为精度高的,比如short转为int,对符号进行拓展;高精度转为低精度,直接截断多出来的高位

浮点数(这里只讨论double)强制转换为整数会发生精度丢失,直接舍去小数部分。还有其他的舍入方式,向上取整,向下取整,四舍五入,这三种在库函数中都有实现。需要说明的是,强制转换与向下取整在面临负数时出现不同反应

技术图片

double d1=3.65,d2=-3.62
int n1=floor(d1)
int n2=ceil(d1)
int n3=round(d1)   //严格四舍五入,1.4999转为1,而不是2

隐式转换:简单来说,两个不同类型的数值计算时,精度较低的会自动转换为精度较高的参与运算,运算结束再将结果转换为所要求的类型。

隐式转换还有可能会发生在传参时,参数的类型自动转换为函数要求的参数类型


字符串转换为int:stoi(字符串,起始位置,2~32进制),将n进制的字符串转化为十进制;atoi;stringstream

string str="235";
int num=stoi(str)

int num=atoi(str.c_str());

std::string text = "152";
int number;
std::stringstream ss;
ss << text;//可以是其他数据类型
ss >> number; //string -> int
ss.clear();   // clear!!!

字符串转化为double

//string-->double
double stringConverTodouble(string str){
    istringstream iss(str);

    double  x;
    if(iss >> x) return x;
    return 0.0;
}

 

转换数据类型

标签:类型   sig   隐式转换   span   符号   convert   之间   库函数   数值计算   

原文地址:https://www.cnblogs.com/czrui/p/13787121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!