如何获得下一个浮点值(向上或向下)?

时间:2018-10-17 16:04:29

标签: java floating-point

假设我们遇到这样的情况:我们有一个上限(一个float),还有一个标志“ strict”(boolean)。我们想浏览一个值列表(浮点数),然后对满足边界的每个值进行处理。

支票看起来像这样:

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

这不是世界末日,但是boundstrict的定义距离此检查较远,并且出于代码局部性的原因,最好不要发送strict所有整个过程。

如果可能的话,仅将绑定“向上移动到下一个值”是方便的,这样我们无需检查value <= bound,而只需检查value < boundPlusALittleBit

如果我们使用ints而不是floats,这很容易(boundPlusALittleBit = bound + 1),但是用浮点数做到这一点并不容易。有实现这个目的的库函数吗?

1 个答案:

答案 0 :(得分:5)

Math.nextUpMath.nextDown,对于floatdouble参数来说都是重载。

  

沿正无穷大方向返回与d相邻的浮点值。

     

沿负无穷大的方向返回与d相邻的浮点值。