- 24 Dic 2018
- 592
- 382
Buenas, estaba haciendo una especie de conversor de divisa muy simple, de euros a dólares y de dólares a euros. El caso es que quiero redondear el resultado a dos decimales, y no se por qué no me deja.
f"{valor:.2f}"
[LIST=1]
[*]>>> round(2.3145, 2)
[*]2.31
[/LIST]
[LIST=1]
[*]>>> 0.1 * 3
[*]0.30000000000000004
[/LIST]
>>> f"{0.1:.30f}"
'0.100000000000000005551115123126'
En casos en que necesites números exactos, con precisión definida, usa en su lugar un módulo que te permita trabajar con números de aritmética decimal de coma fija (por ejemplo, decimal)
supongo que ni has probado mi solucion, ya que no me has dicho nada, pero acabo de descargar python para probarlo y a mi me redondea tu programa como te he dichoNo se nada de python, pero creo que es porque estas haxiendo el round al aire, o sea o lo metes en el print o lo asignas a la misma variable es decir variable = round(variable)
Es cierto perdona ajajaja la leí pero se me olvidó por completo. El caso es que al hacer "print(round (cantidad_convertida, 2))" sí me deja, pero yo quiero mostrar un mensaje que imprima por pantalla: 100€ = 110$ por ejemplo, y eso se haría concatenando las variables y texto, y ahí no me deja usar la función round. Así es como quedaría la línea de código:supongo que ni has probado mi solucion, ya que no me has dicho nada, pero acabo de descargar python para probarlo y a mi me redondea tu programa como te he dicho
print(round(cantidad_a_convertir),2) + "€ = " +str(cantidad_convertida)+ "$")
Es cierto perdona ajajaja la leí pero se me olvidó por completo. El caso es que al hacer "print(round (cantidad_convertida, 2))" sí me deja, pero yo quiero mostrar un mensaje que imprima por pantalla: 100€ = 110$ por ejemplo, y eso se haría concatenando las variables y texto, y ahí no me deja usar la función round. Así es como quedaría la línea de código:
Código:print(round(cantidad_a_convertir),2) + "€ = " +str(cantidad_convertida)+ "$")
Okey ahora si jaajja mazo gracias. Soy gilipollas y estaba poniendolo al revés, en vez de:Dos formas de hacerlo:
1. Como lo tenias pero añadiendo el round dentro del str(round(...)) (ya que ahi lo tienes sin str que aparece en el codigo original)
2. Haz el round antes del print como lo tienes pero sobrescribe la variable.
Convertida = round(comvertida, 2)
convertida = round(cantidad_convertida,2)
print(str(cantidad_a_convertir) + "€ = " +str(convertida)+ "$")
convertida = round(cantidad_convertida,2)
print(str(convertida) + "€ = " +str(cantidad_a_convertir)+ "$")