Pet*_*ter 4 java double groovy numbers
当有一个Double d时,我想知道哪个Double'是比d更小的可能值.
当d == 0时,我知道答案,那就是Double.MIN_VALUE:
> 0d + Double.MIN_VALUE
4.9E-324
Run Code Online (Sandbox Code Playgroud)
但是比如1d这样的所有欧姆数字呢?
> 1d + Double.MIN_VALUE
1.0
Run Code Online (Sandbox Code Playgroud)
我猜想它必须具有重要的数字,但简而言之:我正在寻找一种能让我获得下一个双倍的方法
nextDouble(0)==4.9E-324
Run Code Online (Sandbox Code Playgroud)
小智 10
看看这些功能.
public static double nextAfter(double start, double direction)
返回第二个参数方向上第一个参数旁边的浮点数.如果两个参数比较相等,则返回第二个参数.
public static double nextUp(double d)
返回正无穷大方向上与d相邻的浮点值.此方法在语义上等效,
nextAfter(d, Double.POSITIVE_INFINITY);但nextUp实现可能比其等效的nextAfter调用运行得更快.
这样做:
Double d = Math.random();
Double next = d + Math.ulp(d);
Run Code Online (Sandbox Code Playgroud)
来自JavaDoc:
双值的ulp是该浮点值与接下来幅度较大的双值之间的正距离.
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |