str - Cómo formatear un número flotante a ancho fijo en Python
str a numero python (5)
Consulte la sintaxis de la cadena de formato Python 3.x:
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
¿Cómo formateo un número flotante a un ancho fijo con los siguientes requisitos:
- Cero inicial si n <1
- Agregue el (los) decimal (es) final (es) para llenar el ancho fijo
- Truncar dígitos decimales más allá del ancho fijo
- Alinear todos los puntos decimales
Por ejemplo:
% formatter something like ''{:06}''
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
La salida sería como
23.2300
0.1233
1.0000
4.2230
9887.2000
En Python 3.
GPA = 2.5
print(" %6.1f " % GPA)
6.1f
significa que después de los puntos, 1 dígito muestra que si imprime 2 dígitos después de los puntos, solo debe %6.2f
, de manera que %6.3f
3 dígitos se imprimen después del punto.
En python3 los siguientes trabajos:
>>> v=10.4
>>> print(''% 6.2f'' % v)
10.40
>>> print(''% 12.1f'' % v)
10.4
>>> print(''%012.1f'' % v)
0000000010.4
Ha sido un poco tuyo desde que se respondió, pero a partir de Python 3.6 ( PEP498 ) puedes usar las nuevas f-strings
:
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print(f''{number:9.4f}'')
Huellas dactilares:
23.2300
0.1233
1.0000
4.2230
9887.2000
for x in numbers:
print "{:10.4f}".format(x)
huellas dactilares
23.2300
0.1233
1.0000
4.2230
9887.2000