昨天偷懒了,有种负罪感,哈哈哈
- 【自动类型转换】转换原则:将数据长度短的转换为数据长度长的,以保证数据的精度不降低。
如果不同类型的数据混合运算,编译器便默认的将等级低的类型转换成等级高的类型。例如:
int a=5,b=3;float x=2.5;char c=‘A’;求x+(a+c)/b的值
分析:先看a+c,a是int,c是char,根据优先级,char->int,A的ASCII码值是65,则a+c=70
然后再除b,b是整型数据,不用进行转换,70/3=23.3333循环,两个整型数据相处如果有小数部分,则只保留整数部分,小数部分不要,则是23,那么精确度降低。
x类型是float,后面运算类型是int,则都转换为double类型,最后结果25.5
总结:
1.若数据类型不同先转换成同一类型再运算。
2.转换按数据长度增加的方向进行,以保证不降低数据精度。
3.浮点运算以双精度型进行,仅含float运算的表达式,也要先转换成double型。