Или, более конкретно, числа с плавающей точкой 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
Ответы:
Вот и ты. Используйте float (который ведет себя как и имеет ту же точность, что и C, C ++ или Java double).
источник
float('7.5606e-08')
производит ожидаемое плавание Python.>>> x = "2342.34"
и конвертирую в float, вместо этого>>> float(x)
я получаю сообщение @Mongoose2342.34
2342.3400000000001
>>> 0.1 + 0.2
для двойного.>>> 0.1 + 0.6
для плавания.Десятичный оператор может быть больше в соответствии с тем, что вы ищете:
источник
Имейте в виду, что если номер вашей строки содержит более 15 значащих цифр, то он
float(s)
будет округлен. В этих случаях лучше использоватьDecimal
Вот объяснение и некоторые примеры кода: https://docs.python.org/3/library/sys.html#sys.float_info
источник