我不知道如何告诉printf打印一个可变精度的双精度。
我实际上在做什么:
int main(void)
{
int digits = 4;
printf("%0.*f\n", digits, 0.123456789);
printf("%0.*f\n", digits, 5.9);
return (0);
}
我实际上有*和数字变量的变量精度,但它仍然在最后一个数字后打印剩余的0。
为了说明我的问题,我得到的是:
0.1234
5.9000
这就是我想要的:
0.1234
5.9
你能帮我吗?
答案 0 :(得分:4)
您需要使用%g
代替%f
:
#include <stdio.h>
int main(void)
{
int digits = 4;
printf("%0.*g\n", digits, 0.123456789);
printf("%0.*g\n", digits, 5.9);
return 0;
}
输出:
0.1235
5.9