admin 管理员组文章数量: 887021
2024年1月24日发(作者:站长之家官网ppt模板)
C语言数据类型转换实例代码
C语言数据类型转换实例代码
例如,为了保存小数你可以将int类型的变量转换为double类型。
数据类型转换的一般格式为:
type_name expression
type_name为要转换到的数据类型,expression为表达式。例如:
float a; //把a转换为实型intx+y; //把x+y的结果转换为整型float
100; //将一个常量转换为实型
将整数转换为浮点数:
#includeint main int sum = 17, count = 5; double mean; mean =
double sum / count; printf“Value of mean : %fn", mean; return 0;
运行结果:
Value of mean : 3.__
需要注意的是,类型转换运算符 的优先级高于/ ,double sum /
count会先将 sum 转换为 double 类型,然后再进行除法运算。如果写作double sum / count ,那么运行结果就是 3.000000。
这种由程序员显式进行的转换称为强制类型转换。除了强制类型转换,在不同数据类型的混合运算中编译器也会隐式地进行数据类型转换,称为自动类型转换。
自动类型转换遵循下面的规则:
1.若参与运算的数据类型不同,则先转换成同一类型,然后进行运
算。
2.转换按数据长度增加的方向进行,以保证精度不降低。例如int型和long型运算时,先把int量转成long型后再进行运算。
3.所有的.浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
型和short型参与运算时,必须先转换成int型。
5.在赋值运算中,赋值号两边的数据类型不同时,需要把右边表达式的类型将转换为左边变量的类型。如果右边表达式的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度。
下图表示了类型自动转换的规则:
自动数据类型转换。
#includeint main float PI=3.__; int s1, r=5; double s2; s1 = r*r*PI; s2 =
r*r*PI; printf"s1=%d, s2=%fn", s1, s2; return 0;
运行结果:
s1=78, s2=78.__
在计算表达式r*r*PI时,r 和 PI 都转换成double类型,表达式的结果也为double类型。但由于 s1 为整型,所以赋值运算的结果仍为整型,舍去了小数部分。
注意是将小数部分直接丢掉,而不是按照四舍五入向前舍入。
无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
请看下面的例子:
#includeint main float f=5.75; printf"intf=%d, f=%fn",intf, f; return 0;
运行结果:
intf=5, f=5.__
版权声明:本文标题:C语言数据类型转换实例代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1706069899h500591.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论