Wie konvertiere ich einen String in Python in einen Double?


Antworten:


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

Los geht's. Verwenden Sie float (das sich wie ein C-, C ++ - oder Java-Double verhält und dieselbe Genauigkeit hat).


38
Genauer gesagt sind Python-Floats C-Doubles.
Hablabit

1
Bah benutzte Float anstelle von Double. Jetzt ist mein Code um .0000000001 aus, was weh tut
Evorlor

2
Dies funktioniert übrigens auch mit Exponentennotation. Beispiel: float('7.5606e-08')Erzeugt den erwarteten Python-Float.
Drevicko

2
Mit meiner Python (Version 2.7.10), wenn ich zuweisen >>> x = "2342.34" und konvertieren zu schweben >>> float(x) Ich werde 2342.34stattdessen die 2342.3400000000001von @Mongoose berichtet
Bruce_Warrior

Verwenden Sie >>> 0.1 + 0.2für doppelt. >>> 0.1 + 0.6für float.
user1510539

50

Der Dezimaloperator entspricht möglicherweise eher dem, wonach Sie suchen:

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.