Comparación de números flotantes

Clase 17 de 38Curso de Fundamentos de Python

Resumen

En el mundo de la programación, manejar números con precisión es un arte delicado, especialmente cuando trabajamos con los flotantes en lenguajes como Python. El entendimiento de cómo Python maneja la precisión decimal es crucial para evitar errores comunes que pueden surgir al comparar flotantes. En la siguiente sección, exploraremos las intrincadas cuestiones de los números con coma flotante y las técnicas efectivas para compararlos adecuadamente.

Cómo funciona la precisión decimal en Python

Cuando asignamos un valor flotante, como 3.3, esperamos que la operación de suma de números que resulten en ese valor sea consistente. Por ejemplo, sumar 1.1 y 2.2 debería darnos 3.3. Sin embargo, al trabajar en Python, esto no siempre es lo que ocurre debido a cómo el lenguaje maneja la precisión decimal internamente.

¿Qué sucede al imprimir los valores de flotantes?

Al imprimir diferentes flotantes que teóricamente representan el mismo número, nos podemos encontrar con que Python muestra diferencias en la precisión decimal. Esto se debe a la representación binaria de flotantes en la memoria de la computadora y cómo Python realiza las operaciones.

¿Por qué flotantes que parecen iguales no lo son en Python?

Al comparar dos flotantes que parecen ser iguales, como x asignado directamente a 3.3 y y resultante de la suma de 1.1 más 2.2, Python podría indicar que no son iguales (False). Esto puede llevar a confusión y errores si no se entiende bien el funcionamiento interno.

¿Cómo podemos comparar flotantes correctamente?

Para evitar los problemas al comparar flotantes en Python, existen dos métodos principales: uno involucra el uso de cadenas de texto y otro se basa en un enfoque matemático.

Comparación mediante strings

Una técnica para comparar flotantes es convertir el número con mayor precisión decimal a string y truncar los decimales sobrantes. De esta manera, se simplifica el número a una versión que puede ser comparada más fácilmente.

¿Cuál es el proceso para convertir un flotante en string?

El proceso para truncar los decimales de un flotante y convertirlo a string consiste en:

  • Convertir el flotante a string.
  • Usar la función format para limitar el número de decimales.
  • Comparar el resultado con otro flotante convertido a string.

Comparación matemática

El segundo método implica un enfoque matemático que utiliza el concepto de tolerancia para determinar si dos flotantes son iguales dentro de un margen de error aceptable.

¿Cómo se implementa la comparación matemática?

La implementación de la comparación matemática es como sigue:

  • Calcular la diferencia absoluta entre los dos flotantes.
  • Establecer un valor de tolerancia como margen de error.
  • Comparar si la diferencia absoluta es menor que la tolerancia establecida.

Estos métodos ayudan a realizar comparaciones más precisas de flotantes en Python, evitando los errores que podrían ocurrir si no se toman en cuenta las peculiaridades de la precisión decimal en la programación.

Comprender y aplicar correctamente estas técnicas en flotantes es solo el comienzo. Sigue aprendiendo y profundizando en tus conocimientos programáticos, y no olvides practicar constantemente para manejar con agilidad los desafíos que Python y otros lenguajes de programación ofrecen. ¡Adelante en tu viaje hacia la maestría en código!

      Comparación de números flotantes