Bagaimana cara mengubah string menjadi ganda dengan Python?


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


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.