Bagaimana cara mengubah string menjadi ganda dengan Python?

218

Saya ingin tahu cara mengonversi string yang berisi angka menjadi ganda.

pengguna46646
sumber
Itu bukan python double. Python double memiliki kapasitas tak terbatas.

Jawaban:

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

Ini dia. Gunakan float (yang berperilaku seperti dan memiliki ketepatan yang sama dengan C, C ++, atau Java double).

Luwak
sumber
38
Atau, lebih khusus, floats Python adalah C ganda.
habnabit
1
Bah menggunakan float bukan double. sekarang kode saya mati oleh .0000000001 yang sakit
Evorlor
2
kebetulan, ini juga bekerja dengan notasi eksponen. misalnya: float('7.5606e-08')menghasilkan float python yang diharapkan.
drevicko
2
Dengan python saya (versi 2.7.10), ketika saya menetapkan >>> x = "2342.34" dan mengkonversi ke float >>> float(x) saya 2342.34malah 2342.3400000000001melaporkannya oleh @Mongoose
Bruce_Warrior
Gunakan >>> 0.1 + 0.2untuk double. >>> 0.1 + 0.6untuk mengapung.
user1510539
50

Operator desimal mungkin lebih sesuai dengan apa yang Anda cari:

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