Простой вопрос: каково правильное битовое представление числа 1.15507e-173 с двойной точностью?
Полный вопрос: как определить правильный разбор этого числа?
Справочная информация: мой вопрос следует из этого ответа , который показывает два разных представления битов от трех разных анализаторов, а именно
0x1c06dace8bda0ee0
и
0x1c06dace8bda0edf
и мне интересно, какой парсер понял это правильно.
Обновление В разделе 6.4.4.2 в спецификации C99 сказано, что для синтаксического анализатора C
"...the result is either the nearest representable value, or the larger
or smaller representable value immediately adjacent to the nearest
representable value, chosen in an implementation-defined manner."
Это означает, что разобранный номер не должен быть ни ближайшим, ни даже одним из двух смежных представимых чисел. В той же спецификации в 7.20.1.3 говорится, что strtod () ведет себя в основном так же, как встроенный парсер. Спасибо ответчикам, которые указали на это.
Также см. этот ответ на аналогичный вопрос и этот блог .