如果运算符两边的数据类型不统一,则较低类型的需要转化成较高类型,再参加运算。
运算符的高低如下:
char,short→int→unsigned→long→double←float
1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 float f=5.97; 6 printf("(int)f=%d\n",(int)f); 7 printf("f=%f\n",f); 8 return 0; 9 } 10 11 运行结果: 12 13 (int)f=5 14 15 f=5.97
强制类型转换的格式如下:
(类型)(数据)
如:(int)(x+y)
整形转化为浮点型时,数值不变,形式改变为浮点型;
浮点型转化为整形时,舍去小数点后面的内容,整数部分不变。
float型转化为double型时,数值不变,形式改变为浮点型;
double型转化为float型时,通过截尾实现,不过截尾前要四舍五入
int型转化为char型时,保留低8位,高位舍去;
long型转化为int型时,保留低16位,高位舍去;