【请教】类型转换中会有很多问题,如下代码:
#include <stdio.h>
int main()
{
double num = 2.5; //定义浮点型变量num1并赋值为2.5
printf("num的整数部分是%d\n", (int)num);
printf("%d \n",num);
printf("%d \n",2.5);
printf("%d \n",(float)2.5);
//*******
printf("\n\nnum2 = num :\n");
int num2 = num;
printf("%d \n",num2);
printf("%f \n",num2);
printf("%g \n",num2);
return 0;
}
【结果是:】
num的整数部分是2
4196047
4196051
4196051
num2 = num :
2
2.500000
2.5
【个人分析:】
前几个输出4196074是因为前一节说的 占字节大的数转换为小的数会出错
而后面输出int型的num2会输出2.5,这个。。。是因为什么呀老师?