¿Cómo mostrar un flotador con dos decimales? [duplicar]
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?
Dado que esta publicación podría estar aquí por un tiempo, señalemos también la sintaxis de Python 3:
"{:.2f}".format(5)
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.
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 foobar
puede 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 .