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

时间:2013-10-06 13:20:34

标签: c formatting printf currency right-justified

在我的程序中,我打印出一张表,其中一列有列出的钱。我想整齐地打印出货币价值并且正确对齐,如下所示:

  $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 个答案:

答案 0 :(得分:2)

通过简单地使用printf来实现这一目标非常困难。对于货币敏感的格式,您应该使用strfmon()功能 有关更详细的说明,请阅读answer给出的Jonathan Leffler

答案 1 :(得分:2)

您可以使用辅助字符串:

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