Для наочності, якщо я використовую мову, яка реалізує плавні IEE 754, і я заявляю:
float f0 = 0.f;
float f1 = 1.f;
... а потім надрукуйте їх назад, я отримаю 0,0000 та 1,0000 - точно.
Але IEEE 754 не здатний представляти всі числа по реальній прямій. Близько до нуля "прогалини" невеликі; чим далі ви віддаляєтесь, тим розриви збільшуються.
Отже, моє запитання: для плавця IEEE 754, яке є першим (найближчим до нуля) цілим числом, яке не може бути точно представлено? Мені зараз дуже цікаво 32-бітні плавучі, хоча мені буде цікаво почути відповідь для 64-бітових плаваючих, якщо хтось це дає!
Я думав, що це буде так само просто, як обчислити 2 bits_of_mantissa і додати 1, де bits_of_mantissa - це кількість біт, які виставляє стандарт. Я зробив це для 32-бітових плаваючих на моїй машині (MSVC ++, Win64), і це здалося прекрасним.