Как получить следующее значение с плавающей запятой (вверх или вниз)? - PullRequest
0 голосов
/ 17 октября 2018

Предположим, у нас есть такая ситуация: у нас есть верхняя граница (которая float), а также флаг "строгий" (boolean).Мы хотим просмотреть список значений (с плавающей точкой) и сделать что-то для каждого значения, которое удовлетворяет границе.

Проверка будет выглядеть примерно так:

value -> strict ? (value < bound) : (value <= bound)

Это не конецмира, но bound и strict определены далеко от этой проверки, и по соображениям локальности кода было бы неплохо не посылать strict в течение всего процесса.

Это было быбыло бы удобно, если это возможно, просто переместить границу "до следующего значения", чтобы вместо проверки value <= bound мы могли просто проверить value < boundPlusALittleBit.

Если мы используем ints вместо floats это легко (boundPlusALittleBit = bound + 1), но это не так просто сделать с помощью float.Есть ли библиотечная функция, которая достигает этого?

1 Ответ

0 голосов
/ 17 октября 2018

Есть Math.nextUp и Math.nextDown, оба перегружены для параметров float и double.

Возвращает плавающее значение-точка, смежная с d в направлении положительной бесконечности.

Возвращает значение с плавающей точкой, смежное с d в направлении отрицательной бесконечности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...