在我的程序中,我打印出一张表,其中一列有列出的钱。我想整齐地打印出货币价值并且正确对齐,如下所示:
$9.00
$8.00
$19.20
$200.90
我可以正确地证明这样的数字
while(condition)
{
printf("$%5.2f\n", number);
}
但很明显,使用这种方法时, $ 不会定位在我想要的位置,而且我得到的结果更像是:
$ 9.00
$ 8.00
$ 19.20
$ 200.90
我可以使用 printf 来获取我想要的格式吗?
答案 0 :(得分:2)
通过简单地使用printf
来实现这一目标非常困难。对于货币敏感的格式,您应该使用strfmon()
功能
有关更详细的说明,请阅读answer给出的Jonathan Leffler。
答案 1 :(得分:2)
您可以使用辅助字符串:
while(condition)
{
char str[10] = {};
sprintf(str, "$%.2f", number);
printf("%8s\n", str);
}