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

问题描述:

在我的程序中打印出一张表格,其中一列列出了货币。我想整齐地打印出来的金钱价值观和右对齐,如下图所示:C - 打印格式化的货币输出

$9.00 
    $8.00 
$19.20 
$200.90 

我可以右对齐的数字,像这样

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

但显然用这种方法$ ISN “T定位,我想它,我得到一个输出更象:

$ 9.00 
$ 8.00 
$ 19.20 
$ 200.90 

我能得到的F ormatting我只想要printf

这很难通过简单地使用printf来实现。对于货币敏感的格式,您应该使用strfmon()函数。
欲了解更详细的解释,请阅读answerJonathan Leffler给出。

你可以用辅助字符串做:

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