在 C 语言中格式化浮点值



我需要使用 C 语言中的printf语句0.5打印.5。 可以使用以下代码轻松完成此操作。

printf("%03f", myfloatvalue);

但情况是动态的myfloatvalue。所以我不确定它是否是一个 3 个字符的数字,它可能是.5.56.567.在上述情况下,我需要打印为0.50.560.567

%g打印浮点数的最短表示形式。

printf("%g",myfloatvalue);

从我的评论继续到弗洛里安的回答,"%0g"的格式将打印带有前导零的最短表示形式,例如

#include <stdio.h>
int main (void) {
float f[] = { .5, .56, .567 };
size_t n = sizeof f/sizeof *f;
for (size_t i = 0; i < n; i++)
printf ("%0gn", f[i]);
return 0;
}

示例使用/输出

$ ./bin/floatfmt
0.5
0.56
0.567

相关内容

  • 没有找到相关文章

最新更新