C程序设计(第二版)(谭浩强) 第55页 的一个有关问题

C程序设计(第二版)(谭浩强) 第55页 的一个问题
书中说:如果参加算术运算的两个数中有一个数为实数,则结果是double型,因为所有实数都按double型进行运算。

晕倒,这就是说如果:float   a=2.8;
                                        float   b=3.0;
                                        float   c;
                                        c=a+b;
                                    按书上的说法,这个时候计算完了的c并不是float而是double型,那我还得再多写一句c=   (float)c;   进行强制转化一下吗?!

------解决方案--------------------
结果是 double的 是说float a=2.8;
float b=3.0;
a+b的值存在一个临时变量里面,这个临时变量是double的,然后你把这个临时变量的值赋给了c,赋值的时候可以进行类型转换的变量会自动进行类型转换