Я делал некоторые вычисления округления и натолкнулся на вопрос. Как я могу выразить наибольшее количество меньше 1 для данного типа с плавающей запятой?
То есть, как я пишу / представляю значение x
такое, что x < 1, x + y >= 1
для любого y > 0
.
В дробях это будет x = (q-1)/q
, где q
- это точность типа. Например, если вы рассчитываете с шагом 1/999
, тогда x = 998/999
.
Для данного типа (float, double, long double), как можно выразить значение x
в коде?
Мне также интересно, существует ли такое значение для всех значений y
. То есть, когда показатель y's
становится меньше, возможно, отношение больше не выполняется. Так что ответ с некоторым ограничением диапазона на y
также приемлем. (Значение x
, которое я хочу, все еще существует, отношения могут просто неправильно выражать его.)