C - Печать форматированного вывода денег
В моей программе я распечатываю таблицу, в одной из колонок перечислены деньги. Я хочу распечатать денежные значения аккуратно и правильно, как показано ниже:
$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 ответа
Вы можете сделать это с помощью вспомогательной строки:
while(condition)
{
char str[10] = {};
sprintf(str, "$%.2f", number);
printf("%8s\n", str);
}
Это очень трудно достичь, просто используя printf
, Для форматирования с учетом валюты вы должны использовать strfmon()
функция.
Для более подробного объяснения прочитайте ответ Jonathan Leffler.