Comment convertir une chaîne en double en Python?

218

Je voudrais savoir comment convertir une chaîne contenant des chiffres en double.

user46646
la source
Ce n'est pas un double en python. Un double en python a une capacité illimitée.

Réponses:

316
>>> x = "2342.34"
>>> float(x)
2342.3400000000001

Voilà. Utilisez float (qui se comporte comme et a la même précision qu'un double C, C ++ ou Java).

Mangouste
la source
38
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
Bruce_Warrior
Utilisez >>> 0.1 + 0.2pour double. >>> 0.1 + 0.6pour flotteur.
user1510539
50

L'opérateur décimal pourrait être plus conforme à ce que vous recherchez:

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434
foomip
la source