2010-08-30 3 views
19

Sto provando a rappresentare un numero con zeri iniziali e finali in modo che la larghezza totale sia 7 compreso il punto decimale. Ad esempio, voglio rappresentare "5" come "005.000". Sembra che la formattazione delle stringhe mi consenta di fare l'una o l'altra, ma non entrambe. Ecco l'output ricevo in ipython illustrare il mio problema:Come utilizzare la formattazione delle stringhe per mostrare ENTRAMBI gli zero iniziali e la precisione di 3?

In [1]: '%.3f'%5 
Out[1]: '5.000' 

In [2]: '%03.f'%5 
Out[2]: '005' 

In [3]: '%03.3f'%5 
Out[3]: '5.000' 

Linea 1 e 2 stanno facendo esattamente quello che mi aspettavo. La linea 3 ignora semplicemente il fatto che voglio zeri iniziali. Qualche idea? Grazie!

risposta

36

Il primo numero è il totale di numero di cifre, compreso il punto decimale.

>>> '%07.3f' % 5 
'005.000' 
+0

Ha senso, grazie! – cat

+0

punto decimale è una cifra? –

+7

Conta anche il segno meno! bleh, insolitamente scadente per Python IMHO – meawoppl

6

[Edit: Gah, battuto di nuovo]

'%07.3F'%5 

Il primo numero è la larghezza totale del campo.

Problemi correlati