Для ясности, если я использую язык, который реализует поплавки IEE 754, и я заявляю:
float f0 = 0.f;
float f1 = 1.f;
... и затем распечатайте их обратно, я получу 0.0000 и 1.0000 - точно.
Но IEEE 754 не способен отображать все числа вдоль реальной строки. Близко к нулю "пробелы" малы; когда вы уходите дальше, пробелы становятся больше.
Итак, мой вопрос: для float IEEE 754, который является первым (самым близким к нулю) целым числом, которое не может быть точно представлено? Я действительно очень обеспокоен 32-битными поплавками для теперь, хотя мне будет интересно услышать ответ на 64-битный, если кто-то его даст!
Я думал, что это будет так же просто, как вычисление 2 bits_of_mantissa и добавление 1, где bits_of_mantissa - это количество бит, которое предоставляет стандарт. Я сделал это для 32-битных поплавков на моей машине (MSVС++, Win64), и это выглядело прекрасно.