int cost = 12.99 // 实型常量默认为double类型,如此定义,会将小数部分直接截去,之后cost = 12
float pi = 3.1415926536 // 实型常量默认为double类型,有效位默认>=10位,而float有效位为6位,所以pi会丢精度为3.14159
*检测数据转换的常见错误*/
# include <stdio.h>int main(void)
{ int f = 4; int g = 5; float h = 5.0f;printf("%d\n", f, g);
printf("%d %d\n",f); printf("%d\n", h);return 0;
}/*输出结果04 00*///不同的编译器的输出结果是不同的,因此,参数数目和类型一定要匹配printf(“%1.2f”, a);//表示把a输出保留2小数用四舍五入,且整个数字占用1格。
float num = 126.2 //其中num在作为参数传递时会转换为double存放在内存中
总结
当出现在表达式里时,char 和short 都会转换成int,视情况转换成unsigned int。,float转化成double类型
在混合运算中低级类型转换成高级类型;由高到低 long double ,double ,float,unsigned long long ,unsigned long, long, unsigned int, int
在赋值语句中计算结果会被转换成将要被赋予值的那个变量的类型。
当做函数参数传递的时候,char 和short 转化成int 而float 转化成double
int b;b+5;中5默认是int