Максимальная научная запись?

1

Если я правильно помню, числа с плавающей запятой выделяют определенное количество битов для мощности и определенное количество битов для значащих цифр. Тем не менее, мне немного трудно разобраться в том, что кажется максимальным числом научной нотации с плавающей запятой в python3 в моей 64-битной системе Linux:

>>> 1.8e308
inf
>>> 1.7e308
1.7e+308

Что здесь происходит?

Чтобы было ясно, мне не интересно, каково максимальное значение с плавающей запятой. Меня интересует обоснование того, почему это ценность. Например, кажется, что переполнение произойдет на некоторой четной степени двух для значащей цифры. Почему это происходит где-то между 1,7 и 1,8? Это кажется странным.

Показать ещё 1 комментарий
Теги:
floating-point
python-3.x

2 ответа

3
Лучший ответ

"1.7" и "1.8" не являются цифрами от дробной части представления с плавающей запятой. Это десятичные цифры, полученные в результате выражения числа в десятичном, а не двоичном формате с плавающей точкой.

Переполнение происходит при мощности два, 2 1024 что составляет около 1,779693 • 10 308.

-1

Чтобы получить точное максимальное значение, попробуйте сделать:

import sys
sys.float_info.max

Вы получите: 1.7976931348623157e + 308

Ещё вопросы

Сообщество Overcoder
Наверх
Меню