我有这行代码:
printf("%.3d%.2f\n", ones, value);
但是,这不起作用,因为%.2f
会产生0.25
。
我是否可以添加一个修饰符,使其只打印.25
,即删除0?
答案 0 :(得分:1)
在C中,不,没有。
您可以做的是打印到临时缓冲区,然后根据它调整您打印的内容:
char buff[30];
sprintf (buff, "%.2f", value); // Get value to temp buffer
if ((buff[0] == '0') && (buff[1] == '.')) // Starts with "0."?
printf ("%s", buff+1); // Yes, skip the zero..
else
printf ("%s", buff); // No, print the lot.
但是,看起来就像你总是保证浮点小于1,因为你在输出中一起运行整数和浮点值。如果是这种情况,你可以使用类似的东西:
printf ("%6.2f", value + ones);