Leccion 008 - Numeros en Python: int, float, precision y redondeo correcto
Trabajar con numeros parece simple hasta que aparecen centavos perdidos o comparaciones raras. Esta leccion evita esos problemas desde el inicio.
int y float
Sección titulada «int y float»edad = 25 # intprecio = 19.99 # float
print(type(edad))print(type(precio))Operaciones comunes
Sección titulada «Operaciones comunes»a = 10b = 3
print(a + b) # 13print(a / b) # 3.333...print(a // b) # 3print(a % b) # 1Problema de precision en float
Sección titulada «Problema de precision en float»print(0.1 + 0.2)print((0.1 + 0.2) == 0.3)Salida tipica:
0.30000000000000004FalseEsto no es bug de Python: es representacion binaria de decimales.
Comparar floats correctamente
Sección titulada «Comparar floats correctamente»import math
print(math.isclose(0.1 + 0.2, 0.3))Redondeo con round
Sección titulada «Redondeo con round»precio = 19.987print(round(precio, 2))Para salidas de dinero, usa formato:
total = 259.5print(f"${total:.2f}")Calculadora de totales robusta
Sección titulada «Calculadora de totales robusta»def total_con_iva(precio_unitario, cantidad, iva=0.22): subtotal = precio_unitario * cantidad total = subtotal * (1 + iva) return round(total, 2)
print(total_con_iva(19.99, 3))Practica sugerida
Sección titulada «Practica sugerida»Implementa una funcion calcular_cuota(monto, meses) que:
- Devuelva cuota mensual redondeada a 2 decimales.
- Retorne
Nonesimeses <= 0.
FAQ SEO: numeros en Python
Sección titulada «FAQ SEO: numeros en Python»Por que 0.1 + 0.2 no da exactamente 0.3
Sección titulada «Por que 0.1 + 0.2 no da exactamente 0.3»Por como se representan decimales en binario. Ocurre en muchos lenguajes, no solo Python.
Como comparar decimales en Python sin errores
Sección titulada «Como comparar decimales en Python sin errores»Usa math.isclose en lugar de comparar floats con ==.
Como redondear a 2 decimales en Python
Sección titulada «Como redondear a 2 decimales en Python»Con round(valor, 2) o con formateo f"{valor:.2f}" para mostrarlo en pantalla.