我需要使用C语言中的.5
语句将0.5
打印为printf
。
可以使用以下代码轻松完成。
printf("%03f", myfloatvalue);
但情况是myfloatvalue
是动态的。所以我不确定它是3个字符的数字,可以是.5
或.56
或.567
。在上述情况下,我需要打印为0.5
,0.56
和0.567
。
答案 0 :(得分:6)
%g
会打印浮点数的最短表示。
printf("%g",myfloatvalue);
答案 1 :(得分:3)
继续我对Florian的答案的评论,"%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 ("%0g\n", f[i]);
return 0;
}
示例使用/输出
$ ./bin/floatfmt
0.5
0.56
0.567