C语言 - 打印格式化的货币输出

3
在我的程序中,我打印了一张表格,其中一列列出了货币。我想要将货币值整齐地打印出来,并使其右对齐,如下所示:
  $9.00
  $8.00
 $19.20
$200.90

我可以像这样将数字右对齐

while(condition)
{
   printf("$%5.2f\n", number);
}

但很明显,使用这种方法,$ 的位置不在我想要的地方,输出结果更像是:
$    9.00
$    8.00
$   19.20
$  200.90

我可以简单地使用printf得到我想要的格式吗?

2个回答

3

您可以使用辅助字符串来完成:

while(condition)
{
   char str[10] = {};
   sprintf(str, "$%.2f", number);
   printf("%8s\n", str);
}

2
使用简单的printf很难实现这一点。对于与货币相关的格式化,应该使用strfmon()函数。
有关更详细的解释,请阅读Jonathan Leffler提供的答案

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