我正在读一本关于C的旧书(1990),书中有一个数字格式,循环如下:

...
...
printf("%3.1f %15.10f\n",x, x*x+x+1/x);

书上说
%m.kf将float(或double)类型的值转换为小数点后带m位数的位置。
在玩了这个之后,我仍然完全困惑。
我玩过这个。
http://cstub.com/196059842/
#include <stdio.h>
int main( int argc, const char* argv[] )
{
    double f = 1.55568;
    printf("%10.12f",f);
}

k

最佳答案

打印精度为1、最小宽度为3个字符的浮点数,例如

printf("%3.1f\n", 3.5);

将输出
3.5

因为它有3个字符3.5,但是
printf("%10.1f\n", 3.5);

将输出
       3.5
_______---
/* ^ 7 spaces because 10 characters width requested */

这将允许您右对齐数字,如
printf("%10.1f\n", 3.5);
printf("%10.1f\n", 121.2);
printf("%10.1f\n", 54.7);

输出
       3.5
     121.2
      54.7

关于c - %3.1f在C中做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28129598/

10-12 17:17