strings print places float python python-3.x f-string

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 el value 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''