Java 如何获得架构支持的最小下一个或上一个可能的双值?
假设我有一个Java 如何获得架构支持的最小下一个或上一个可能的双值?,java,floating-point,Java,Floating Point,假设我有一个double变量d。是否有一种方法可以获取CPU体系结构支持的下一个或上一个值 作为一个简单的例子,如果该值为10.1245125,并且体系结构的精度固定为小数点后7位,那么下一个值将为10.1245126,上一个值将为10.1245124 显然,在浮点体系结构上,这并没有那么简单。我怎样才能实现这一点(在Java中)?事实上,IEEE 754浮点体系结构使这一点变得很容易:多亏了该标准,几乎所有支持该函数的语言都调用了该函数,这种一致性使我能够在不太熟悉Java的情况下为您的问题编
double
变量d
。是否有一种方法可以获取CPU体系结构支持的下一个或上一个值
作为一个简单的例子,如果该值为10.1245125,并且体系结构的精度固定为小数点后7位,那么下一个值将为10.1245126,上一个值将为10.1245124
显然,在浮点体系结构上,这并没有那么简单。我怎样才能实现这一点(在Java中)?事实上,IEEE 754浮点体系结构使这一点变得很容易:多亏了该标准,几乎所有支持该函数的语言都调用了该函数,这种一致性使我能够在不太熟悉Java的情况下为您的问题编写一个答案:
java.lang.Math.nextAfter(双起点,双向)
返回第二个参数方向上与第一个参数相邻的浮点数
请记住,-infinity和+infinity是浮点值,这些值便于给出方向(第二个参数)。不要犯一些常见的错误,比如写Math.nextAfter(x,x+1)
,它只在1大于x
时才起作用
任何写上述内容的人可能都是指
Math.nextAfter(x,Double.POSITIVE _∞)
,它保存了一个加法并适用于x
的所有值哦,我错过了这个函数!非常感谢!有关更多便利信息,请参见和。