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.

Другие вопросы по тегам