Java Math nextAfter() 方法与示例
Java.lang.Math.nextAfter()返回第二个参数方向上与第一个参数相邻的浮点数。如果两个参数相等,则返回第二个参数。
Syntax :
// datatype can be float or double.
public static dataType nextAfter(dataType st, dataType dir)
Parameter :
st :starting floating-point value.
dir :value indicating which of start’s neighbors or start should be returned.
Return :
This method returns the floating-point number adjacent to start in the direction of direction.
笔记 :
- 如果参数之一是NaN ,则输出为NaN
- 如果两个参数都是有符号的 zeros ,则返回方向不变(如果参数比较相等,则返回第二个参数的要求暗示了这一点)。
- 如果start是Double.MIN_VALUE 或 Float.MIN_VALUE并且方向的值使得结果应该具有较小的幅度,则返回与 start 符号相同的零。
- 如果start是无限的,并且 direction 的值使得结果应该具有较小的幅度,则返回与 start 具有相同符号的Double.MAX_VALUE 或 Float.MAX_VALUE 。
- 如果start等于Double.MAX_VALUE 或 Float.MAX_VALUE并且 direction 的值使得结果应该具有更大的量级,则返回与 start 符号相同的无穷大。
示例 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