3

当我用这段代码编译一个程序时:

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;
}

谁能告诉我为什么?

4

3 回答 3

3

句点后面的数字是指定浮点值小数点后位数的精度。前导零没有任何意义。

句点前的数字是指定最小字段宽度的数字。前导零会将填充字符从空格更改为 0。

于 2013-02-25T05:28:13.380 回答
2

小数点后的数字指定精度 - 将写入的最小位数。.1 和 .01 都表示至少输入 1 个数字,如果少于 1 个数字,则用零填充结果。Plain%f相当于%.6f, 即小数点后 6 位。

于 2013-02-25T04:53:13.943 回答
-1

第一个程序的输出将是例如。对于两个打印命令,a=100 将是 100.000000(默认情况下,双精度为 6)仅 100.0。其中第二个程序将具有值:100.000000(默认为双精度)100.0

于 2018-12-29T14:12:28.277 回答