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


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).


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.