Как мне напечатать printf, чтобы учесть отрицательные знаки и числа переменной длины? - PullRequest
27 голосов
/ 16 марта 2011

Я пытаюсь вывести некоторые числа в файл журнала, и я хочу дополнить загрузку с помощью функции printf, чтобы получить:

 058.0
 020.0
 038.0
-050.0
 800.0
 150.0
 100.0

В настоящее время я делаю это:

printf("% 03.1f\n", myVar);

... где myVar - это число с плавающей точкой. Вывод этого оператора выглядит следующим образом:

58.0
20.0
38.0
-50.0
800.0
150.0
100.0

Из того, что я прочитал Я ожидаю, что мой код выдаст вывод, который я упомянул в верхней части этого поста, но явно что-то не так. Вы можете использовать только один флаг за раз? ... или здесь что-то еще происходит?

Ответы [ 2 ]

25 голосов
/ 16 марта 2011

Указатель ширины - это полная ширина:

printf("%05.1f\n", myVar);  // Total width 5, pad with 0, one digit after .

Чтобы получить ожидаемый формат:

printf("% 06.1f\n", myVar);
0 голосов
/ 18 января 2019

следует за Эриком, но я считаю,

printf("% 6.1f\n", myVar);

также работает.

...