⒈int number=10.8;
number占4个字节,double占8个字节。
输出number为10,弃了0.8,丢失精度。
⒉只要为将一个大类型数据转化为小类型数 据,就有可能丢失精度。
⒊在运算的过程中,其实还做了一次自动类 型提升。
⒋如果在计算过程中,参与运算的操作数不 是同一类型,那么系统会将小类型转换为 大类型,然后再进行运算。
⒌算术运算注意点:参与运算的操作数是什么 类型,那么计算出来的结果就是什么类 型。
例:①int result=1/2; printf("result=%i\n",result); 输出:0 ②double result=1/2; printf("result=%f\n",result); 输出:0.000000
总结:参与什么型,输出什么型。
例:①double result=1.0/2;//隐式转换 printf("result=%f\n",result); 输出:0.500000 ②double result=(double)1/2; //显式转换 printf("result=%f\n",result); 输出:0.500000
⒍算术运算符规定:只有相同类型的数据才可 以进行运算。
⒎①强制类型转换(显式转换) 格式:(类型关键字)(表达式)
例:(int)8.8/4; 输出:2 //8.8先转换为8,然后再除以4,所以输出为2。
②自动类型转换(隐式转换) 格式:⑴不同类型数据混合运算时,升成 数据类型较大的类型。 (2)赋值时,右侧表达式的值转化成 左侧变量的类型。 (3)所有浮点运算都是以double类型 进行运算,即使表达式中都是float。
网友评论