2010-08-30 14 views
19

Estoy tratando de representar un número con ceros al principio y al final para que el ancho total sea 7 incluyendo el punto decimal. Por ejemplo, quiero representar "5" como "005.000". Parece que el formateo de cadenas me permitirá hacer una u otra pero no ambas. Aquí está la salida me meto en IPython ilustrar mi problema:¿Cómo uso el formato de cadena para mostrar AMBOS ceros a la izquierda y una precisión de 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' 

línea 1 y 2 están haciendo exactamente lo que se esperaría. La línea 3 simplemente ignora el hecho de que quiero los ceros a la izquierda. ¿Algunas ideas? ¡Gracias!

Respuesta

36

El primer número es número total de dígitos, incluido el punto decimal.

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

¡Tiene sentido, gracias! – cat

+0

punto decimal es un dígito? –

+7

¡Esto también cuenta el signo menos! bleh, inusualmente de mala calidad para Python en mi humilde opinión – meawoppl

6

[Editar: Gah, golpeados de nuevo]

'%07.3F'%5 

el primer número es el ancho total del campo.

Cuestiones relacionadas