我是新手,我正在尝试打印一个 float
值,每边最多四位。例如 11.3
将是 0011.3000
。为此,我使用以下行:-
float t = 11.3;
printf("%4.4f", t);
但我得到的是 11.3000
。那么,我想做的事情甚至有可能吗?如果是那么如何?谢谢
最佳答案
您的代码片段中 f
的类型不正确,它应该是 float
或 double
。
要生成前导零,请使用 0
printf
修饰符并指定预期的最小宽度,在您的示例中为 9 个字符( 之前的 4 个位置。
加上 .
加上 .
之后的 4 个位置。
因此格式为 %09.4f
。
代码如下:
#include <stdio.h>
int main() {
double t = 11.3;
printf("%09.4f\n", t);
return 0;
}
输出:
0001.3000
但请注意,如果数字为负数,您只会在 之前获得 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;
}
输出:
0011.3000
0011.3000
-0011.3000
关于c - 打印在两边最多 float 四个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51492065/