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:

11d

03h

41m

18s

2

Cómo comparar números flotantes

Comparar números flotantes puede ser engorroso por las imprecisiones que implican la representación de los números decimales. Esto debido a que este tipo de números se almacenan en la memoria del computador usando una representación binaria, complicando los resultados debido al redondeo.

#Dan diferente precisión decimal
x = 3.3print(x)
y = 1.1 + 2.2#por la referencia de memoria tiene cierta precisión decimal
print(y)#como la precisión es diferente no son exactamente iguales
print(x==y)

Por esto, se pueden trabajar dos maneras para hacer la comparación:

  1. Es brusca y se hace a partir de strings. Se transforma y en formato string y se cortan los valores extra de precisión:
y_str = format(y,".2g") #Parámetros: (variable, "#decimales")
print('str ->', y_str)
print(y_str == str(x)) #Para hacer la comparación con la equis se tiene que volver str también
  1. Es la forma matemática.
print("*" * 10)#Solo es una línea divisoria.
print(y, x)
#matemáticamente son iguales, entonces se puede resolver con tolerancia
tolerance = 0.00001#se saca el valor absoluto con abs() ya que se necesita que sea positivo.
print(abs(x-y)<tolerance)
Escribe tu comentario
+ 2