Ou, plus précisément, les flotteurs Python sont des doubles C.
habnabit
1
Bah a utilisé un flotteur au lieu du double. maintenant mon code est désactivé par .0000000001 ce qui fait mal
Evorlor
2
d'ailleurs, cela fonctionne également avec la notation des exposants. par exemple: float('7.5606e-08')produit le flottant python attendu.
drevicko
2
Avec mon python (version 2.7.10), lorsque j'attribue >>> x = "2342.34" et convertis en float, >>> float(x) j'obtiens à la 2342.34place le 2342.3400000000001rapport de @Mongoose
Sachez que si votre numéro de chaîne contient plus de 15 chiffres significatifs, il float(s)sera arrondi. Dans ces cas, il est préférable d'utiliserDecimal
Réponses:
Voilà. Utilisez float (qui se comporte comme et a la même précision qu'un double C, C ++ ou Java).
la source
float('7.5606e-08')
produit le flottant python attendu.>>> x = "2342.34"
et convertis en float,>>> float(x)
j'obtiens à la2342.34
place le2342.3400000000001
rapport de @Mongoose>>> 0.1 + 0.2
pour double.>>> 0.1 + 0.6
pour flotteur.L'opérateur décimal pourrait être plus conforme à ce que vous recherchez:
la source
Sachez que si votre numéro de chaîne contient plus de 15 chiffres significatifs, il
float(s)
sera arrondi. Dans ces cas, il est préférable d'utiliserDecimal
Voici une explication et quelques exemples de code: https://docs.python.org/3/library/sys.html#sys.float_info
la source