Como faço para converter uma string em um double no Python?

218

Gostaria de saber como converter uma string contendo dígitos em um dobro.

user46646
fonte
Isso não é um python duplo. Um duplo python tem capacidade ilimitada.

Respostas:

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

Ai está. Use float (que se comporta como e tem a mesma precisão que um duplo C, C ++ ou Java).

Mangusto
fonte
38
Ou, mais especificamente, os flutuadores Python são C duplos.
habnabit
1
Bah usou float em vez de dobrar. Agora meu código está desativado por 0,0000000001 que dói
Evorlor
2
aliás, isso também funciona com notação de expoente. por exemplo: float('7.5606e-08')produz o flutuador python esperado.
drevicko
2
Com o meu python (versão 2.7.10), quando eu atribuir >>> x = "2342.34" e convertido para flutuar >>> float(x) eu fico 2342.34em vez do 2342.3400000000001relatado por @Mongoose
Bruce_Warrior
Use >>> 0.1 + 0.2para o dobro. >>> 0.1 + 0.6para flutuar.
User1510539
50

O operador decimal pode estar mais alinhado com o que você está procurando:

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