当我使用此代码编译程序时:
int main()
{
float a;
scanf("%f", &a);
printf("%.1f\n", a); //Here
return 0;
}
与其他人没有区别:
int main()
{
float a;
scanf("%f", &a);
printf("%.01f\n", a); //Here
return 0;
}
任何人都可以告诉我为什么?
答案 0 :(得分:3)
句点后面的数字是精度,它指定浮点值小数点后的位数。领先的零没有任何意义。
句点之前的数字是指定最小字段宽度的数字。前导零将填充字符从空格更改为0。
答案 1 :(得分:2)
小数点后面的数字指定精度 - 将写入的最小位数。 .1和.01都说要放至少1位,如果少于1位,则用零填充结果。普通%f
相当于%.6f
,即小数点后的6位数。
答案 2 :(得分:-1)
第一个程序的输出例如。 a = 100 对于两个打印命令,它将是 100.000000(默认情况下,double的精度为6) 100.0 只要。 其中,第二个程序将具有以下值: 100.000000(默认为double的精度) 100.0