Pad Python Flotteurs
-
07-07-2019 - |
Question
Je souhaite appliquer des valeurs en pourcentage afin qu'il y ait toujours 3 unités avant la décimale. Avec ints, je pourrais utiliser '% 03d' - existe-t-il un équivalent pour les flottants?
'%. 3f' fonctionne après la décimale, mais '% 03f' ne fait rien.
La solution
'% 03.1f' fonctionne (1 peut être un nombre quelconque ou une chaîne vide):
>>> "%06.2f"%3.3
'003.30'
>>> "%04.f"%3.2
'0003'
Notez que la largeur du champ comprend les chiffres décimaux et fractionnaires.
Autres conseils
Sinon, si vous souhaitez utiliser .format
:
{:6.1f}
↑ ↑
| |
# digits to pad | | # of decimal places to display
Copypasta: {: 6.1f}
Exemple d'utilisation:
'Num: {:6.1f}'.format(number)
Vous pouvez également utiliser zfill,
.str(3.3).zfill(5)
'003.3'
Un petit exemple:
var3= 123.45678
print(
f'rounded1 \t {var3:.1f} \n'
f'rounded2 \t {var3:.2f} \n'
f'zero_pad1 \t {var3:06.1f} \n' #<-- important line
f'zero_pad2 \t {var3:07.1f}\n' #<-- important line
f'scientific1 \t {var3:.1e}\n'
f'scientific2 \t {var3:.2e}\n'
)
Donne la sortie
rounded1 123.5
rounded2 123.46
zero_pad1 0123.5
zero_pad2 00123.5
scientific1 1.2e+02
scientific2 1.23e+02
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow