Comment formater un nombre flottant à une largeur fixe en Python
Comment formater un nombre flottant à une largeur fixe avec les exigences suivantes:
- Premier zéro si n
- ajouter le(s) zéro (s) décimal (s) pour remplir la largeur fixe
- tronquer les chiffres décimaux après la largeur fixe
- aligner toutes les décimales
Par exemple:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
La sortie serait comme
23.2300
0.1233
1.0000
4.2230
9887.2000
212
demandé sur
hobbes3
2012-01-17 00:07:54
5 réponses
for x in numbers:
print "{:10.4f}".format(x)
Imprime
23.2300
0.1233
1.0000
4.2230
9887.2000
340
répondu
Sven Marnach
2012-01-16 20:10:38
En python3, les travaux suivants:
>>> v=10.4
>>> print('% 6.2f' % v)
10.40
>>> print('% 12.1f' % v)
10.4
>>> print('%012.1f' % v)
0000000010.4
25
répondu
Scott Roberts
2015-05-26 04:19:30
Voir Python 3.x format chaîne syntaxe :
IDLE 3.5.1
numbers = ['23.23', '.1233', '1', '4.223', '9887.2']
for x in numbers:
print('{0: >#016.4f}'. format(float(x)))
23.2300
0.1233
1.0000
4.2230
9887.2000
6
répondu
readyleader
2017-02-01 01:50:27
En Python 3.
GPA = 2.5
print(" %6.1f " % GPA)
6.1f
après les points 1 chiffres montrent si vous imprimez 2 chiffres après les points que vous devez seulement %6.2f
tels que %6.3f
, 3 chiffres, impression après le point.
0
répondu
Usman Zia
2017-08-19 07:19:33
Il a été un peu le vôtre depuis que cela a été répondu, mais à partir de Python 3.6 (PEP498) vous pouvez utiliser le nouveau f-strings
:
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print(f'{number:9.4f}')
Imprime:
23.2300
0.1233
1.0000
4.2230
9887.2000
0
répondu
artomason
2018-10-04 15:08:18