Я делал некоторые вычисления округления и возникал по вопросу. Как я могу выразить наибольшее количество меньше 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
Я хочу, чтобы все еще существует, связь может просто неправильно выразить его.)