Як перетворити рядок у подвійну в Python?


Відповіді:


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

Ось так. Використовуйте float (який веде себе так, як і має таку ж точність, як C, C ++ або Java double).


38
Або, точніше, плавки Python - це C подвійні.
ханабіт

1
Бах використовував поплавок замість подвійного. тепер мій код вимкнено .0000000001, що болить
Еворлор

2
до речі, це також працює з позначенням експонентів. наприклад: float('7.5606e-08')створює очікуваний поплавок пітона.
drevicko

2
З моїм python (версія 2.7.10), коли я призначаю >>> x = "2342.34" і конвертую в плаваючий, >>> float(x) я отримую 2342.34замість цього 2342.3400000000001повідомлення про @Mongoose
Bruce_Warrior

Використовуйте >>> 0.1 + 0.2для подвійних. >>> 0.1 + 0.6для поплавця.
користувач1510539

50

Десятковий оператор може більше відповідати тому, що ви шукаєте:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.