假设我们遇到这样的情况:我们有一个上限(它是一个float),还有一个标志“ strict”(boolean)。我们想浏览一个值列表(浮点数),并对满足边界的每个值做一些事情。

支票看起来像这样:

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


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

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

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

最佳答案

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


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

09-28 08:38