Int64 и double кто длиннее?

На днях задался интересным вопросом, как так получается, что в тип double можно запихнуть число с 300 знаками, а в Int64 всего 20 знаков?

оба типа данных занимают в памяти по 8 байт

типы данных


Ответы (1 шт):

Автор решения: gbg

Потому что число в int хранится всегда точно, а в double - с погрешностью, причем при росте экспоненты, погрешность растет (что неудивительно, растет экспоненциально).

введите сюда описание изображения

То есть, на деле, в числах с плавающей запятой хранятся не все знаки числа, а лишь первые несколько штук, и дополнительно хранится номер места среди этих знаков, где нужно поставить десятичный разделитель.

→ Ссылка