Максимальное количество десятичных цифр, которые могут повлиять на двойной

Рассмотрим десятичные представления вида d1.d2d3d4d5 ... dnExxx, где xxx - произвольный показатель степени, а оба d1 и dn отличны от нуля.

Известно ли максимальное значение n, для которого существует десятичное представление d1.d2d3d4d5 ... dnExxx, такое, что интервал (d1.d2d3d4d5 ... dnExxx, d1.d2d3d4d5 ... ((dn) +1) Exxx) содержит IEEE 754 двухместных?

n должно быть не менее 17. Вопрос в том, насколько выше 17.

Это число n имеет отношение к числу цифр, которое достаточно учитывать при преобразовании десятичного числа в двойное, например:strtod(), Я посмотрел на исходный кодДэвид М. Гейреализация в надежде найти ответ там. Существует намек на «40” но неясно, является ли это следствием надежного математического результата или просто статистически надежной границей. Также комментарий о «усечения» звучит как 0,5000000000000000000000000000000000000000000000000001 можно преобразовать в 0,5 в режиме округления вверх.

MUSL»реализация кажется, читает примерно 125 * 9 цифр, что много. Затем он переключается на «липкие» Режим:

if (c!='0') x[KMAX-4] |= 1;

Наконец, как меняется ответ при замене «содержит двойной стандарт IEEE 754 » с "содержит середину двух последовательных двойников IEEE 754 »? I '

Ответы на вопрос(1)

Ваш ответ на вопрос