Дополнительные начальные нули при печати float с использованием printf?
Я хотел бы написать строку времени, которая выглядит так: 1:04:02.1 hours
с помощью printf.
Когда я пытаюсь написать что-то вроде этого:
printf("%d:%02d:%02.1f hours\n", 1, 4, 2.123456);
Я получаю:
1:04:2.1 hours
Можно ли добавить ведущие нули в форматирование с плавающей запятой?
Ответы
Ответ 1
С помощью спецификатора формата %f
"2" рассматривается как минимальное количество символов в целом, а не количество цифр до десятичной точки. Таким образом, вы должны заменить его на 4, чтобы получить две ведущие цифры + десятичную точку + одну десятичную цифру.
printf("%d:%02d:%04.1f hours\n", 1, 4, 2.123456);
Ответ 2
Попробуйте %04.1f
вместо %02.1f
. "4" здесь означает, что будет напечатано не менее 4 символов, а "2.1" имеет 3 ( > 2) символа, поэтому для включения нулей нужного вам значения требуется 4.