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