O, más específicamente, los flotadores de Python son Dobles en C.
habnabit
1
Bah usó flotador en lugar de doble. ahora mi código está desactivado por .0000000001 que duele
Evorlor
2
dicho sea de paso, esto también funciona con notación de exponente. por ejemplo: float('7.5606e-08')produce el flotador de python esperado.
drevicko
2
Con mi python (versión 2.7.10), cuando asigno >>> x = "2342.34" y convierto a flotante >>> float(x) , obtengo 2342.34el 2342.3400000000001informe de @Mongoose
Respuestas:
Ahí tienes. Use float (que se comporta como y tiene la misma precisión que un doble C, C ++ o Java).
fuente
float('7.5606e-08')
produce el flotador de python esperado.>>> x = "2342.34"
y convierto a flotante>>> float(x)
, obtengo2342.34
el2342.3400000000001
informe de @Mongoose>>> 0.1 + 0.2
para doble.>>> 0.1 + 0.6
para flotadorEl operador decimal puede estar más en línea con lo que está buscando:
fuente
Tenga en cuenta que si su número de cadena contiene más de 15 dígitos significativos
float(s)
lo redondeará. En esos casos, es mejor usarDecimal
Aquí hay una explicación y algunos ejemplos de código: https://docs.python.org/3/library/sys.html#sys.float_info
fuente