C语言进阶:[5]数值的转换
数值之间有时候需要转换,这时候十分容易出问题。分几种情况:
一:范围小的转换为范围大的:如int转换为long,或float,double。这时候,转换正常。
二:范围小的转换为范围大的:
1>范围大的数据变量所表示的数值在范围小的数值变量内,这时候转换是正确的。例如:
int x = 123;
float y = 234.3f;
x = y;
printf("%d\n",x);
显示结果:
![C语言进阶:[5]数值的转换](https://exp-picture.cdn.bcebos.com/460fdc8333bf3beff1b4e60b3f3ea8db564a1a53.jpg)
2>范围大的数据变量所表示的数值不在范围小的数值变量内,例如
int x = 123;
float y = 232333232344.3f;
x = y;
printf("%d\n",x);
显示结果不正确。
![C语言进阶:[5]数值的转换](https://exp-picture.cdn.bcebos.com/f59dbe39131fceec0622dfc679c4ec9958430b53.jpg)
如果加上强制类型转换,结果也是不正确的。如果转换不得已,那么可以用浮点数的值和整型的最大值比较一下,就可以了,代码如下
int x = 123;
float y = 232333232344.3f;
if(y<INT_MAX)
x = y;
printf("%d\n",x);
总之数据类型之间的转换非常危险,一定要注意。
(共篇)上一篇:VC开发C语言过程|下一篇:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:145
阅读量:78
阅读量:93
阅读量:121
阅读量:100