Hoe formatteer ik een zwevend getal naar een vaste breedte met de volgende vereisten:
Bijvoorbeeld:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
De uitvoer zou er zo uitzien
23.2300
0.1233
1.0000
4.2230
9887.2000
for x in numbers:
print "{:10.4f}".format(x)
23.2300
0.1233
1.0000
4.2230
9887.2000
De format specifier binnen de accolades volgt de Python format string syntax. Specifiek, in dit geval, bestaat het uit de volgende delen:
format()
" - in dit geval de x
als het enige argument.10.4f
gedeelte na de dubbele punt is de formaatspecificatie.f
staat voor fixed-point notatie.10
is de totale breedte van het veld dat wordt afgedrukt, met spaties links en rechts.4
is het aantal cijfers achter de komma.In python3 werkt het volgende:
>>> v=10.4
>>> print('% 6.2f' % v)
10.40
>>> print('% 12.1f' % v)
10.4
>>> print('%012.1f' % v)
0000000010.4
Zie Python 3.x format string syntaxis:
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