Java Math nextAfter()方法及示例
java.lang.Math.nextAfter()返回与第一个参数相邻的浮点数,其方向与第二个参数相同。如果两个参数相等,则返回第二个参数。
语法:
//数据类型可以是 浮点数 或 双数。
public static dataType nextAfter(dataType st, dataType dir)
参数 :
st : 开始的浮点数值。
dir : 表示应该返回start的邻居或start中的哪一个数值。
返回 :
该方法返回与start相邻的浮点数,方向为方向。
注意 :
- 如果其中一个参数是NaN,则输出为NaN。
- 如果两个参数都是有符号的零,那么返回的方向将是不变的(正如在参数比较相等的情况下返回第二个参数的要求所暗示的)。
- 如果start是Double.MIN_VALUE或者Float.MIN_VALUE,并且方向有一个值,使得结果应该有一个较小的幅度,那么将返回一个与start相同符号的0。
- 如果开始是无限的,并且方向有一个值使得结果应该有一个较小的幅度,那么将返回与开始相同符号的Double.MAX_VALUE或Float.MAX_VALUE。
- 如果开始等于Double.MAX_VALUE或Float.MAX_VALUE,并且方向有一个值,使得结果应该有更大的幅度,则返回一个与开始相同符号的无穷大。
例1:展示java.lang.Math.nextAfter()方法的工作。
// Java program to demonstrate working
// of java.lang.Math.nextAfter() method
import java.lang.Math;
class GfG {
// driver code
public static void main(String args[])
{
double a = 0.0 / 0;
double b = 12.2;
// Input a is NaN, Output NaN
System.out.println(Math.nextAfter(a, b));
double c = 0.0;
double d = 0.0;
// Both Input are signed zeros, Output zero
System.out.println(Math.nextAfter(c, d));
float e = Float.MIN_VALUE;
float f = 12.2f;
System.out.println(Math.nextAfter(e, f));
float g = 1.0f / 0f;
float h = 1.0f;
System.out.println(Math.nextAfter(g, h));
double i = Double.MAX_VALUE;
double j = 12344.2;
System.out.println(Math.nextAfter(i, j));
}
}
输出:
NaN
0.0
2.8E-45
3.4028235E38
1.7976931348623155E308