Trabajo a diario con Python 2.4 en mi empresa. Utilicé la función de logaritmo versátil 'log' de la biblioteca matemática estándar, y cuando ingresé el registro (2 ** 31, 2) devolvió 31.000000000000004, lo que me pareció un poco extraño.Logaritmo inexacto en Python
Hice lo mismo con otras potencias de 2, y funcionó perfectamente. Ejecuté 'log10 (2 ** 31)/log10 (2)' y obtuve una ronda 31.0
Intenté ejecutar la misma función original en Python 3.0.1, suponiendo que se solucionó en una versión más avanzada.
¿Por qué sucede esto? ¿Es posible que haya algunas imprecisiones en las funciones matemáticas en Python?
duplicado de la pregunta perenne de punto flotante (¿por qué recibo errores de punto flotante), no puede encontrar el mejor Q duplicado para publicar, tal vez alguien más pueda. –
Debo señalar que Python 3 no * * solucionó el error de coma flotante. En cambio, la salida de impresión utiliza un algoritmo inteligente para mostrar el valor del punto flotante deseado, en lugar de la holgura. –