Come faccio a convertire una stringa in un doppio in Python?


Risposte:


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

Ecco qua Usa float (che si comporta come e ha la stessa precisione di un doppio C, C ++ o Java).


38
O, più specificamente, i float Python sono doppi C.
habnabit,

1
Bah ha usato float anziché double. ora il mio codice è disattivato da .0000000001 che fa male
Evorlor

2
per inciso, questo funziona anche con la notazione esponente. es: float('7.5606e-08')produce il float atteso in pitone.
drevicko,

2
Con il mio python (versione 2.7.10), quando assegno >>> x = "2342.34" e converto in float >>> float(x) ottengo 2342.34invece il 2342.3400000000001report di @Mongoose
Bruce_Warrior

Utilizzare >>> 0.1 + 0.2per doppio. >>> 0.1 + 0.6per galleggiante.
user1510539

50

L'operatore decimale potrebbe essere più in linea con ciò che stai cercando:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.