Come faccio a formattare un numero fluttuante in una larghezza fissa con i seguenti requisiti:
ol>
Per esempio:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
L'output sarebbe come
23.2300
0.1233
1.0000
4.2230
9887.2000
for x in numbers:
print "{:10.4f}".format(x)
stampa
23.2300
0.1233
1.0000
4.2230
9887.2000
Lo specificatore di formato all'interno delle parentesi graffe segue la sintassi delle stringhe di formato Python. In particolare, in questo caso, consiste nelle seguenti parti:
format()
" - in questo caso la x
come unico argomento.10.4f
dopo i due punti è la specifica del formato.f
denota la notazione a punto fisso.10
è la larghezza totale del campo da stampare, con spazi a sinistra.4
è il numero di cifre dopo il punto decimale.In python3 funziona come segue:
>>> v=10.4
>>> print('% 6.2f' % v)
10.40
>>> print('% 12.1f' % v)
10.4
>>> print('%012.1f' % v)
0000000010.4
Vedere Python 3.x format string syntax:
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