Jak przekonwertować ciąg znaków na podwójne w Pythonie?

218

Chciałbym wiedzieć, jak przekonwertować ciąg zawierający cyfry na podwójny.

użytkownik46646
źródło
To nie jest podwójny python. Podwójny python ma nieograniczoną pojemność.

Odpowiedzi:

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

Proszę bardzo. Użyj float (który zachowuje się jak i ma taką samą precyzję jak podwójne C, C ++ lub Java).

Mangusta
źródło
38
Lub dokładniej, zmiennoprzecinkowe Python są podwójnymi C.
habnabit
1
Bah użył pływaka zamiast podwójnego. teraz mój kod jest wyłączony przez .0000000001, co boli
Evorlor
2
nawiasem mówiąc, działa to również z notacją wykładniczą. np .: float('7.5606e-08')produkuje oczekiwany zmiennoprzecinkowy python.
drevicko
2
Z moim pytonem (wersja 2.7.10), kiedy przypisuję >>> x = "2342.34" i konwertuję na zmiennoprzecinkowe >>> float(x) , otrzymuję 2342.34zamiast tego 2342.3400000000001zgłoszenie @Mongoose
Bruce_Warrior
Użyj >>> 0.1 + 0.2do podwójnego. >>> 0.1 + 0.6do pływaka.
user1510539,
50

Operator dziesiętny może być bardziej zgodny z tym, czego szukasz:

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434
Foomip
źródło