Какова точность (в десятичных точках) Python плавает? - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь определить, насколько точны значения Python по сравнению с нулем. Обратите внимание на следующее:

1e-323 == 0
> False
1e-324 == 0
> True

Похоже, что порог составляет 324 десятичных знака, по крайней мере, с реализацией, которую я использую (python 2.7, CPython). Это где-нибудь задокументировано? Это зависит от реализации?

1 Ответ

0 голосов
/ 28 августа 2018

зависит от реализации :

цифр. Реал (с плавающей точкой)

Они представляют двойной уровень на уровне машины. точные числа с плавающей точкой. Вы находитесь во власти базовая машинная архитектура (и реализация C или Java) для принятый диапазон и обработка переполнения. Python не поддерживает числа с плавающей запятой одинарной точности; экономия на процессоре и использование памяти, которое обычно является причиной их использования, невелико из-за накладных расходов на использование объектов в Python, поэтому нет причин усложнить язык двумя видами чисел с плавающей запятой.

Однако вы можете запросить эту информацию во время выполнения:

>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...