Поскольку существует конечное число чисел с плавающей запятой и можно сравнить каждую возможную пару таких чисел (я полагаю), всегда должно существовать число 'b', которое на
- меньше некоторого заданногочисло «а» (не +/- бесконечность) и
- не существует числа «с», меньшего, чем «а», и большего, чем «b»;
, т. е. следующего'меньшее число с плавающей запятой.Интересно, если:
- есть функция меньшего размера (с плавающей точкой a), возвращающая такое число b (или больше (с плавающей точкой a)) на языке программирования C
- , если нет, тогда, если есть способ получить эти «следующие» числа для определенных типов чисел «a», например, если «a» - это целое число / ноль.
Попытка
float smaller(float a) return a - 0.00...001f;
кажется мне взломом, который, вероятно, не работает для всех возможных входов, но я могу ошибаться, поэтому я обращаюсь к вам, ребята.Любая помощь оценивается.