第3个回答 推荐于2017-09-04
printf的格式化字符串中(printf的第一个参数), %f和%d都是和后续的参数一一对应的。
其中%f对应的参数为单精度浮点型(float),%d对应的参数为整型(int)。
当后续参数与格式字符中的不符时,会按照格式字符,做强制转换。
比如
float a=1.0;
int b = 2;
printf("%f,%d\n",b,a);
等效于
printf("%f,%d\n",(float)b,(int)a);
所以%f和%d的区别就是:
1 %f会输出一个实数,是整数部分加小数点加小数部分的形式,默认有6位小数;
2 %d会输出一个整数,只有整数部分,不会有小数点,更不会有小数部分。