Invierte en tu educación con el precio especial

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12d

07h

31m

15s

1

🤔 Cómo comparar números con decimales (tipo float) en Python 2️⃣.1️⃣

¿Estás comparando números decimales y el resultado no es lo que esperabas?

#Comparar datos tipo floata = 6.3b = 3.1 + 3.2print(a)print(b)print(a == b)

Resultado:
6.3
6.300000000000001
False

Esto sucede porque la precisión decimal no es la misma entre los números comparados, en este caso tienes dos opciones para hacer la comparación:

a) Convirtiendo los números a texto con la misma cantidad de decimales

#Convertir ambos valores a cadena de texto (string)
a_str = format(a, '.2g')
b_str = format(b, '.2g')
print("a formato texto:", a_str)print("b formato texto:", b_str)print('Resultado comparación formato texto:', a_str == b_str)

Resultado:
a formato texto: 6.3
b formato texto: 6.3
Resultado comparación formato texto: True

b) Validando que la diferencia entre ambos valores sea menor a un error tolerable

#Se define una tolerancia máxima de la diferencia entre los valores a comparar
tolerancia = 0.00001#La resta se hace con valor absoluto (siempre un valor positivo)
print("Tolerancia:", format(tolerancia, 'f'))
print("Resultado abs(a - b):", format(abs(a - b), '.15f'))
print("Resultado comparación usando tolerancia:", abs(a - b) < tolerancia)

Resultado:
Tolerancia: 0.000010
Resultado abs(a - b): 0.000000000000001
Resultado comparación usando tolerancia: True

Espero que te haya sido útil, hasta pronto!

Escribe tu comentario
+ 2