J'aimerais pouvoir écrire une chaîne de temps qui ressemble à ceci: 1:04:02.1 hours
en utilisant printf.
Lorsque j'essaie d'écrire quelque chose comme ceci:
printf("%d:%02d:%02.1f hours\n", 1, 4, 2.123456);
Je reçois:
1:04:2.1 hours
Est-il possible d'ajouter des zéros non significatifs à une mise en forme flottante?
Avec le %f
spécificateur de format, le "2" est traité comme le nombre minimum de caractères au total, pas le nombre de chiffres avant le point décimal. Vous devez donc le remplacer par 4 pour obtenir deux premiers chiffres + le point décimal + un chiffre décimal.
printf("%d:%02d:%04.1f hours\n", 1, 4, 2.123456);
Essayez %04.1f
au lieu de %02.1f
. Le "4" signifie ici qu'au moins 4 caractères seront imprimés et le "2.1" a 3 (> 2) caractères, donc pour activer les zéros de remplissage, vous avez besoin de 4.