C语言中,如果已经定义double s,那么还有必要s=a*1.0/2吗?
如果a是整数当然是需要的,因为是先计算再赋值的,计算的时候并不知道你需要浮点。
追问
如果a是整形,那么a=a*1.0是不是就可以把a变成实型?
追答
Yes
float a = 12 * 1.0; //编译错误
double b = 12 * 1.0;//正确
float c = 12 * 1.0f;//正确
1.0是double类型的,整数乘以double还是double类型的双精度浮点型,若是将1.0定义为1.0f那样的话结果就是float单精度浮点型。