places - python print f
Dígitos fijos después del decimal con cadenas f (3)
Agregando a la respuesta de Robᵩ: en caso de que desee imprimir números bastante grandes, usar miles de separadores puede ser de gran ayuda (tenga en cuenta la coma).
>>> f''{a*1000:,.2f}''
''10,123.40''
¿Hay alguna manera fácil con las cadenas f de Python (PEP 498) para corregir el número de dígitos después del punto decimal? (Específicamente cadenas f, no otras opciones de formato de cadena como .format o%)
Por ejemplo, digamos que quiero mostrar 2 dígitos después del lugar decimal.
¿Cómo puedo hacer eso?
a = 10.1234
f''{a:.2}''
Out[2]: ''1e+01''
f''{a:.4}''
Out[3]: ''10.12''
a = 100.1234
f''{a:.4}''
Out[5]: ''100.1''
Como puede ver, "precisión" ha cambiado el significado de "número de lugares después del punto decimal", como es el caso cuando se usa el formato%, a solo dígitos totales. ¿Cómo puedo obtener siempre 2 dígitos después del decimal, sin importar qué tan grande sea el número que tengo?
Cuando se trata de números
float
, puede usar
especificadores de formato
:
f''{value:{width}.{precision}}''
dónde:
-
value
es cualquier expresión que se evalúa como un número -
width
especifica el número de caracteres utilizados en total para mostrar, pero si elvalue
necesita más espacio del que especifica el ancho, se utiliza el espacio adicional. -
precision
indica el número de caracteres utilizados después del punto decimal
Lo que falta es el especificador de tipo para su valor decimal. En este link , encontrará los tipos de presentación disponibles para coma flotante y decimal.
Aquí tiene algunos ejemplos, utilizando el tipo de presentación
f
(Punto fijo):
# notice that it adds spaces to reach the number of characters specified by width
In [1]: f''{1 + 3 * 1.5:10.3f}''
Out[1]: '' 5.500''
# notice that it uses more characters than the ones specified in width
In [2]: f''{3000 + 3 ** (1 / 2):2.1f}''
Out[2]: ''3001.7''
In [3]: f''{1.2345 + 4 ** (1 / 2):9.6f}''
Out[3]: '' 3.234500''
# omitting width but providing precision will use the required characters to display the number with the the specified decimal places
In [4]: f''{1.2345 + 3 * 2:.3f}''
Out[4]: ''7.234''
# not specifying the format will display the number with as many digits as Python calculates
In [5]: f''{1.2345 + 3 * 0.5}''
Out[5]: ''2.7344999999999997''
Incluya el especificador de tipo en su expresión de formato:
>>> a = 10.1234
>>> f''{a:.2f}''
''10.12''