打印浮动到两侧四个位置

Tab*_*lah 1 c floating-point printf

我是新手,我试图float在两边打印最多四个值.例如11.30011.3000.为此,我使用以下行: -

float t = 11.3;
printf("%4.4f", t);
Run Code Online (Sandbox Code Playgroud)

但我得到了11.3000.那么,甚至可能我想做什么?如果是,那怎么样?谢谢

chq*_*lie 5

f代码片段中的类型不正确,应该是floatdouble.

要生成前导零,请使用0 printf修改器并指定预期的最小宽度,示例中为9个字符(.加前.4个位置后加4个位置.).

因此格式是%09.4f.

这是代码:

#include <stdio.h>

int main() {
    double t = 11.3;
    printf("%09.4f\n", t);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

0001.3000
Run Code Online (Sandbox Code Playgroud)

但请注意,如果数字为负数,则在前面只有3个位置.,如果数字的绝对值太大(<= -999.99995或> = 9999.99995),则输出将超过9个字符.如果你的意思是在.负值之前有4个位置,你应该使用% 010.4f:如果是正数,则数字将以空格为前缀,-如果是负数则为前缀:

#include <stdio.h>

int main() {
    double t = 11.3;
    printf("%09.4f\n", t);
    printf("% 010.4f\n", t);
    printf("% 010.4f\n", -t);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

0011.3000
 0011.3000
-0011.3000
Run Code Online (Sandbox Code Playgroud)