Red de conocimiento informático - Problemas con los teléfonos móviles - python1.001*10

python1.001*10

La raíz de este problema es el mismo problema decimal infinito del que habla LS que puede surgir al convertir fracciones decimales a decimales binarios. Python usa números de punto flotante de doble precisión para almacenar decimales, y los números de punto flotante de doble precisión solo pueden contener 52 dígitos significativos, por lo que cuando encuentre decimales infinitos (como convertir 0,1 a binario), perderá precisión, es decir, Comprueba si el número 53 es 1 o 0 y realiza el redondeo por 0.

Pero si miras un poco más de cerca, verás: gt;gt;gt;?0.1

0.1

gt;gt;gt;? 1.001*10

10.009999999999999999998

Lo anterior es el contenido que se muestra en python3. Esto muestra que Python3 al menos ha mejorado la pérdida de precisión al almacenar números de punto flotante, pero las operaciones parecen ser las mismas que antes.

Además, en cuanto a la solución a este problema, como se mencionó anteriormente, puede utilizar el módulo decimal o personalizar el formato decimal binario sin pérdidas según sus necesidades.