fre*_*set 43 c formatting printf
我有一个浮点数,如4917.24.我想将它打印到小数点前总共有五个字符,前导零,小数点后三位数.
我尝试printf("%05.3f", n)使用我正在使用的嵌入式系统,但它会打印出来*****.我的格式说明符是否正确?
Car*_*rum 59
您的格式说明符不正确.从printf()我机器上的手册页:
0一个零'0'字符,表示应该使用零填充而不是空白填充.如果两者都使用,则'-'覆盖'0';字段宽度:指定字段宽度的可选数字字符串; 如果输出字符串的字符数少于字段宽度,则在左侧(或右侧,如果已给出左调整指示符)进行空白填充以构成字段宽度(请注意,前导零是标记,但嵌入的零是字段宽度的一部分);
精度:一个可选的句点'
.',后跟一个可选的数字字符串,给出一个精度,指定小数点后出现的位数,e和f格式,或者从字符串打印的最大字符数; 如果缺少数字字符串,则精度被视为零;
对于您的情况,您的格式为%09.3f:
#include <stdio.h>
int main(int argc, char **argv)
{
printf("%09.3f\n", 4917.24);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
$ make testapp
cc testapp.c -o testapp
$ ./testapp
04917.240
Run Code Online (Sandbox Code Playgroud)
请注意,这个答案取决于您的嵌入式系统是否具有printf()符合这些细节标准的实现 - 许多嵌入式环境没有这样的实现.
| 归档时间: |
|
| 查看次数: |
79186 次 |
| 最近记录: |