如何在C语言中将浮点数格式化为右对齐?

5
我想打印一个浮点数,只保留两位小数,并将其右对齐在6个字符的空间中。
我尝试过这样做,但没有成功:
printf("%6.2f", value);

2
它到底做了什么,为什么不起作用?这个代码可以将一个包括小数点的6位输出向右对齐,并在右侧填充两个位置。例如,printf("%6.2f",1.0)会输出 " 1.00"。你想要的确切输出是什么,你需要输入什么? - WhozCraig
2个回答

19
您发布的内容会将整个浮点数放入一个6字符宽的列中,而.xx占据最后3个字符。如果您想将整数部分放在一个6字符宽的列中,'.'和小数部分在这6个字符之后,则可以使用%9.2f。下面是一个快速示例程序以展示不同之处。
#include <stdio.h>

int main(void) {
  float x = 83.4;
  printf("....|....|....|\n");
  printf("%6.2f\n", x); // prints " 83.40"
  printf("%9.2f\n", x); // prints "    83.40"

  return 0;
}

输出结果为:

....|....|....|
 83.40
    83.40

1

你必须在%后面加上-

printf("%-6.2f", value);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接