Как преобразовать строку в двойную в Python?

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


person user46646    schedule 27.01.2009    source источник
comment
Это не дублер питона. Двойник питона имеет неограниченную вместимость.   -  person    schedule 26.02.2010


Ответы (3)


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

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

person Mongoose    schedule 27.01.2009
comment
Или, более конкретно, числа с плавающей запятой в Python - это двойники C. - person habnabit; 27.01.2009
comment
Ба использовал float вместо double. теперь мой код отключен на .0000000001, что больно - person Evorlor; 18.01.2014
comment
кстати, это также работает с обозначением экспоненты. например: float('7.5606e-08') производит ожидаемое значение с плавающей запятой в Python. - person drevicko; 13.02.2014
comment
С моим python (версия 2.7.10), когда я назначаю >>> x = "2342.34" и конвертирую в float >>> float(x) , я получаю 2342.34 вместо 2342.3400000000001, о котором сообщает @Mongoose - person Bruce_Warrior; 31.08.2015
comment
Используйте >>> 0.1 + 0.2 для двойного. >>> 0.1 + 0.6 для поплавка. - person user1510539; 04.09.2017

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

>>> from decimal import Decimal
>>> x = "234243.434"
>>> print Decimal(x)
234243.434
person foomip    schedule 17.06.2011

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

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

person user1767754    schedule 25.01.2018