假设我们遇到这样的情况:我们有一个上限(它是一个float
),还有一个标志“ strict”(boolean
)。我们想浏览一个值列表(浮点数),并对满足边界的每个值做一些事情。
支票看起来像这样:
value -> strict ? (value < bound) : (value <= bound)
这不是世界末日,但是
bound
和strict
的定义远离此检查,并且出于代码局部性的原因,最好不要在整个过程中始终发送strict
。如果可能的话,将绑定“向上移动到下一个值”是很方便的,这样我们不用检查
value <= bound
而是检查value < boundPlusALittleBit
。如果我们使用
ints
而不是floats
,这很容易(boundPlusALittleBit = bound + 1
),但是用浮点数做到这一点并不容易。有实现此目的的库函数吗? 最佳答案
有Math.nextUp
和Math.nextDown
,对于float
和double
参数都重载。
返回在正无穷大方向上与d
相邻的浮点值。
返回在负无穷大方向上与d
相邻的浮点值。