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单精度浮点型。
 
 

posted @ 2020-03-05 04:15  chenlife  阅读(504)  评论(0编辑  收藏  举报