Выразите наибольшее количество с плавающей запятой, которое меньше 1

Я выполнял некоторые вычисления округления и наткнулся на вопрос. Как я могу выразить наибольшее количество меньше 1 для данного типа с плавающей запятой?

То есть, как я пишу / представляю значение x таким образом, что x <1, x + y> = 1 для любого y> 0 .

В дробях это будет be x = (q-1) / q , где q - точность типа. Например, если вы считаете с шагом 1/999 , тогда x = 998/999 .

Для данного типа (float, double, long double), как можно выразить значение x в коде?


Мне также интересно, действительно ли такое значение существует для всех значений y . То есть, поскольку показатель y становится меньше, возможно, отношение больше не выполняется. Так что ответ с некоторым ограничением диапазона на y также приемлем. (Значение x , которое я хочу, все еще существует, связь может просто неправильно выражать это.)

14
задан edA-qa mort-ora-y 29 December 2010 в 08:36
поделиться