Дополнительные начальные нули при печати плавания с помощью printf?

Я хотел бы смочь записать строку времени, которая похожа на это: 1:04:02.1 hours использование printf.
Когда я пытаюсь записать что-то вроде этого:

printf("%d:%02d:%02.1f hours\n", 1, 4, 2.123456);

Я добираюсь:

1:04:2.1 hours

Действительно ли возможно добавить начальные нули к форматированию плавающему?

38
задан Peter Mortensen 1 August 2012 в 13:34
поделиться

2 ответа

С описателем формата % f цифра «2» рассматривается как минимальное количество символов в целом, а не как количество цифр перед десятичной точкой. Таким образом, вы должны заменить его на 4, чтобы получить две ведущие цифры + десятичную точку + одну десятичную цифру.

printf("%d:%02d:%04.1f hours\n", 1, 4, 2.123456);
69
ответ дан 27 November 2019 в 03:24
поделиться

Попробуйте % 04.1f вместо % 02.1f . «4» здесь означает, что будет напечатано как минимум 4 символа, а «2.1» состоит из 3 (> 2) символов, поэтому для включения нулей заполнения вам нужно 4.

15
ответ дан 27 November 2019 в 03:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: