¿Cómo mostrar un flotador con dos decimales? [duplicar]

Resuelto MarathonStudios asked hace 13 años • 13 respuestas

Tengo una función que toma argumentos flotantes (generalmente enteros o decimales con un dígito significativo) y necesito generar los valores en una cadena con dos decimales (5 → 5,00, 5,5 → 5,50, etc.). ¿Cómo puedo hacer esto en Python?

MarathonStudios avatar May 27 '11 14:05 MarathonStudios
Aceptado

Dado que esta publicación podría estar aquí por un tiempo, señalemos también la sintaxis de Python 3:

"{:.2f}".format(5)
Daren Thomas avatar May 27 '2011 07:05 Daren Thomas

Podrías usar el operador de formato de cadena para eso:

>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'

El resultado del operador es una cadena, por lo que puedes almacenarlo en una variable, imprimirlo, etc.

NPE avatar May 27 '2011 07:05 NPE

formato de cadena f :

Esto era nuevo en Python 3.6: la cadena se coloca entre comillas como de costumbre, antepuesta de f'...la misma manera que lo haría r'...con una cadena sin formato. Luego coloca lo que quiera poner dentro de su cadena, variables, números, llaves entre llaves f'some string text with a {variable} or {number} within that text', y Python evalúa como con los métodos de formato de cadena anteriores, excepto que este método es mucho más legible.

>>> foobar = 3.141592
>>> print(f'My number is {foobar:.2f} - look at the nice rounding!')

My number is 3.14 - look at the nice rounding!

Puede ver en este ejemplo que formateamos con decimales de manera similar a los métodos de formato de cadenas anteriores.

NB foobarpuede ser un número, una variable o incluso una expresión, por ejemplo f'{3*my_func(3.14):02f}'.

De cara al futuro, con el nuevo código prefiero las cadenas f a los métodos comunes %s o str.format(), ya que las cadenas f pueden ser mucho más legibles y, a menudo, mucho más rápidas .

toonarmycaptain avatar Sep 29 '2017 19:09 toonarmycaptain