Как мне преобразовать строку в double в Python?

218

Я хотел бы знать, как преобразовать строку, содержащую цифры, в двойное число.

user46646
источник
2
Дубликат: stackoverflow.com/questions/468639/…
S.Lott
Это не двойной питон. Двойной питон имеет неограниченную вместимость.

Ответы:

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

Вот и ты. Используйте float (который ведет себя как и имеет ту же точность, что и C, C ++ или Java double).

Мангуста
источник
38
Или, более конкретно, числа с плавающей точкой Python являются C-двойными.
Хабнабит
1
Бах использовал поплавок вместо двойного. теперь мой код отключен .0000000001, что больно
Evorlor
2
кстати, это также работает с показателями степени. Например: float('7.5606e-08')производит ожидаемое плавание Python.
drevicko
2
С моим питоном (версия 2.7.10), когда я присваиваю >>> x = "2342.34" и конвертирую в float, вместо этого >>> float(x) я получаю сообщение @Mongoose2342.342342.3400000000001
Bruce_Warrior
Используйте >>> 0.1 + 0.2для двойного. >>> 0.1 + 0.6для плавания.
user1510539
50

Десятичный оператор может быть больше в соответствии с тем, что вы ищете:

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434
foomip
источник
2

Имейте в виду, что если номер вашей строки содержит более 15 значащих цифр, то он float(s)будет округлен. В этих случаях лучше использоватьDecimal

Вот объяснение и некоторые примеры кода: https://docs.python.org/3/library/sys.html#sys.float_info

user1767754
источник