java.lang.Object
|---java.lang.StrictMath
public final class StrictMath
extends Object
StrictMath 类包含执行基本数值运算的方法,例如初等指数、对数、平方根和三角函数。
为帮助确保 Java 程序的可移植性,此包中某些数值函数的定义要求它们产生与某些已发布算法相同的结果。这些算法可从著名的网络库 netlib 中以包“Freely Distributable Math Library”fdlibm 的形式获得。这些算法是用 C 编程语言编写的,因此可以理解为按照 Java 浮点运算规则执行所有浮点运算。
Java 数学库是针对 fdlibm 5.3 版定义的。如果 fdlibm 为函数(例如 acos)提供了多个定义,请使用“IEEE 754 核心函数”版本(驻留在名称以字母 e 开头的文件中)。需要 fdlibm 语义的方法有 sin、cos、tan、asin、acos、atan、exp、log、log10、cbrt、atan2、pow、sinh、cosh、tanh、hypot、expm1 和 log1p。
该平台使用带有 int 和 long 原始类型的带符号二进制补码整数算术。开发人员应选择原始类型以确保算术运算始终产生正确的结果,这在某些情况下意味着运算不会溢出计算值的范围。最佳实践是选择原始类型和算法以避免溢出。在大小为 int 或 long 且需要检测溢出错误的情况下,方法 addExact、subtractExact、multiplyExact 和 toIntExact 在结果溢出时抛出 ArithmeticException。对于其他算术运算,例如除法、绝对值、递增、递减和求反,溢出仅发生在特定的最小值或最大值时,应根据需要检查最小值或最大值。
修饰符和类型 | 字段 | 描述 |
---|---|---|
static double | E | 比任何其他值都更接近自然对数的底 e 的双精度值。 |
static double | PI | 比任何其他值都更接近 pi 的 double 值,pi 是圆的周长与其直径的比率。 |
修饰符和类型 | 方法 | 描述 |
---|---|---|
static double | abs(double a) | 返回双精度值的绝对值。 |
static float | abs(float a) | 返回浮点值的绝对值。 |
static int | abs(int a) | 返回 int 值的绝对值。 |
static long | abs(long a) | 返回 long 值的绝对值。 |
static double | acos(double a) | 返回一个值的反余弦值; 返回的角度在 0.0 到 pi 的范围内。 |
static int | addExact(int x, int y) | 返回其参数的总和,如果结果溢出 int,则抛出异常。 |
static long | addExact(long x, long y) | 返回其参数的总和,如果结果溢出 long 则抛出异常。 |
static double | asin(double a) | 返回一个值的反正弦; 返回的角度在 -pi/2 到 pi/2 的范围内。 |
static double | atan(double a) | 返回值的反正切; 返回的角度在 -pi/2 到 pi/2 的范围内。 |
static double | atan2 x) | 从直角坐标 (x, y) 到极坐标 (r, theta) 的转换中返回角度 theta。 |
static double | cbrt(double a) | 返回双精度值的立方根。 |
static double | ceil(double a) | 返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双精度值。 |
static double | copySign(double magnitude, double sign) | 返回带有第二个浮点参数符号的第一个浮点参数。 |
static float | copySign(float magnitude, float sign) | 返回带有第二个浮点参数符号的第一个浮点参数。 |
static double | cos(double a) | 返回角度的三角余弦值。 |
static double | cosh(double x) | 返回 double 值的双曲余弦值。 |
static double | exp(double a) | 返回欧拉数 e 的双精度次方。 |
static double | expm1(double x) | 返回 ex -1。 |
static double | floor(double a) | 返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值。 |
static int | floorDiv(int x, int y) | 返回小于或等于代数商的最大(最接近正无穷大)int 值。 |
static long | floorDiv(long x, long y) | 返回小于或等于代数商的最大(最接近正无穷大)long 值。 |
static int | floorMod(int x, int y) | 返回 int 参数的底模。 |
static long | floorMod(long x, long y) | 返回 long 参数的底模。 |
static int | getExponent(double d) | 返回用于表示双精度的无偏指数。 |
static int | getExponent(float f) | 返回浮点数表示中使用的无偏指数。 |
static double | hypot(double x, double y) | 返回 sqrt(x2 +y2) 没有中间溢出或下溢。 |
static double | IEEEremainder(double f1, double f2) | 计算 IEEE 754 标准规定的两个参数的余数运算。 |
static double | log(double a) | 返回双精度值的自然对数(以 e 为底)。 |
static double | log10(double a) | 返回双精度值的以 10 为底的对数。 |
static double | log1p(double x) | 返回参数和 1 之和的自然对数。 |
static double | max(double a, double b) | 返回两个双精度值中的较大者。 |
static float | max(float a, float b) | 返回两个浮点值中的较大者。 |
static int | max(int a, int b) | 返回两个 int 值中的较大者。 |
static long | max(long a, long b) | 返回两个 long 值中的较大者。 |
static double | min(double a, double b) | 返回两个双精度值中较小的一个。 |
static float | min(float a, float b) | 返回两个浮点值中较小的一个。 |
static int | min(int a, int b) | 返回两个 int 值中较小的一个。 |
static long | min(long a, long b) | 返回两个 long 值中较小的一个。 |
static int | multiplyExact(int x, int y) | 返回参数的乘积,如果结果溢出 int,则抛出异常。 |
static long | multiplyExact(long x, long y) | 返回参数的乘积,如果结果溢出 long 则抛出异常。 |
static double | nextAfter(double start, double direction) | 返回第二个参数方向上与第一个参数相邻的浮点数。 |
static float | nextAfter(float start, double direction) | 返回第二个参数方向上与第一个参数相邻的浮点数。 |
static double | nextDown(double d) | 返回在负无穷方向上与 d 相邻的浮点值。 |
static float | nextDown(float f) | 返回在负无穷方向上与 f 相邻的浮点值。 |
static double | nextUp(double d) | 返回正无穷方向上与 d 相邻的浮点值。 |
static float | nextUp(float f) | 返回在正无穷大方向上与 f 相邻的浮点值。 |
static double | pow(double a, double b) | 返回第一个参数的第二个参数次幂的值。 |
static double | random() | 返回一个带正号的双精度值,大于或等于 0.0 且小于 1.0。 |
static double | rint(double a) | 返回与参数值最接近且等于数学整数的双精度值。 |
static long | round(double a) | 返回最接近参数的长整数,并舍入为正无穷大。 |
static int | round(float a) | 返回最接近参数的 int,并舍入为正无穷大。 |
static double | scalb(double d, int scaleFactor) | 返回四舍五入的 d × 2scaleFactor,就像通过单个正确舍入的浮点乘以双精度值集的成员一样。 |
static float | scalb(float f, int scaleFactor) | 返回 f × 2scaleFactor 舍入,就好像通过单个正确舍入的浮点乘以浮点值集的成员一样。 |
static double | signum(double d) | 返回参数的符号函数; 如果参数为零,则为零,如果参数大于零,则为 1.0,如果参数小于零,则为 -1.0。 |
static float | signum(float f) | 返回参数的符号函数; 如果参数为零,则为零,如果参数大于零,则为 1.0f,如果参数小于零,则为 -1.0f。 |
static double | sin(double a) | 返回角度的三角正弦值。 |
static double | sinh(double x) | 返回 double 值的双曲正弦值。 |
static double | sqrt(double a) | 返回双精度值的正确舍入正平方根。 |
static int | subtractExact(int x, int y) | 返回参数的差异,如果结果溢出 int,则抛出异常。 |
static long | subtractExact(long x, long y) | 返回参数的差异,如果结果溢出 long 则抛出异常。 |
static double | tan(double a) | 返回角度的三角正切。 |
static double | tanh(double x) | 返回 double 值的双曲正切值。 |
static double | toDegrees(double angrad) | 将以弧度测量的角度转换为以度为单位测量的大致等效角度。 |
static int | toIntExact(long value) | 返回 long 参数的值; 如果值溢出 int,则抛出异常。 |
static double | toRadians(double angdeg) | 将以度为单位的角度转换为以弧度为单位的大致等效角度。 |
static double | ulp(double d) | 返回参数的 ulp 的大小。 |
static float | ulp(float f) | 返回参数的 ulp 的大小。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public static final double E
比任何其他值都更接近自然对数的底 e 的双精度值。
public static final double PI
比任何其他值都更接近 pi 的 double 值,pi 是圆的周长与其直径的比率。
public static double sin(double a)
返回角度的三角正弦值。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 一个角度,以弧度为单位。 |
返回:
参数的正弦。
public static double cos(double a)
返回角度的三角余弦值。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 一个角度,以弧度为单位。 |
返回:
参数的余弦。
public static double tan(double a)
返回角度的三角正切。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 一个角度,以弧度为单位。 |
返回:
参数的切线。
public static double asin(double a)
返回一个值的反正弦; 返回的角度在 -pi/2 到 pi/2 的范围内。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 要返回其反正弦的值。 |
返回:
参数的反正弦。
public static double acos(double a)
返回一个值的反余弦值; 返回的角度在 0.0 到 pi 的范围内。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 要返回其反余弦值的值。 |
返回:
参数的反余弦。
public static double atan(double a)
返回值的反正切; 返回的角度在 -pi/2 到 pi/2 的范围内。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 要返回其反正切的值。 |
返回:
参数的反正切。
public static double toRadians(double angdeg)
将以度为单位的角度转换为以弧度为单位的大致等效角度。 从度数到弧度的转换通常是不精确的。
参数:
参数名称 | 参数描述 |
---|---|
angdeg | 一个角度,以度为单位 |
返回:
以弧度为单位的角度 angdeg 的测量值。
public static double toDegrees(double angrad)
将以弧度测量的角度转换为以度为单位测量的大致等效角度。 从弧度到度数的转换通常是不精确的; 用户不应期望 cos(toRadians(90.0)) 完全等于 0.0。
参数:
参数名称 | 参数描述 |
---|---|
angrad | 一个角度,以弧度为单位 |
返回:
以度为单位的角度 angrad 的测量值。
public static double exp(double a)
返回欧拉数 e 的双精度次方。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 将 e 提高到的指数。 |
返回:
值 ea,其中 e 是自然对数的底。
public static double log(double a)
返回双精度值的自然对数(以 e 为底)。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 一个值 |
返回:
ln a 的值,a 的自然对数。
public static double log10(double a)
返回双精度值的以 10 为底的对数。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 一个值 |
返回:
a 的以 10 为底的对数。
public static double sqrt(double a)
返回双精度值的正确舍入正平方根。 特别情况:
否则,结果是最接近参数值的真正数学平方根的双精度值。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个值 |
返回:
a 的正平方根。
public static double cbrt(double a)
返回双精度值的立方根。 对于正有限 x,cbrt(-x) == -cbrt(x); 也就是说,负值的立方根是该值大小的立方根的负数。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 一个值 |
返回:
a的立方根。
public static double IEEEremainder(double f1, double f2)
计算 IEEE 754 标准规定的两个参数的余数运算。 余数在数学上等于 f1 - f2 × n,其中 n 是最接近商 f1/f2 的精确数学值的数学整数,如果两个数学整数同样接近 f1/f2,则 n 是整数 那是均匀的。 如果余数为零,则其符号与第一个参数的符号相同。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
f1 | 被除数 |
f2 | 除数 |
返回:
f1 除以 f2 的余数。
public static double ceil(double a)
返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双精度值。 特别情况:
请注意,StrictMath.ceil(x) 的值正是 -StrictMath.floor(-x) 的值。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个值 |
返回:
大于或等于参数且等于数学整数的最小(最接近负无穷大)浮点值。
public static double floor(double a)
返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 一个值 |
返回:
小于或等于参数且等于数学整数的最大(最接近正无穷大)浮点值。
public static double rint(double a)
返回与参数值最接近且等于数学整数的双精度值。 如果两个作为数学整数的双精度值与参数的值同样接近,则结果是偶数的整数值。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 一个值 |
返回:
最接近等于数学整数的 a 的浮点值。
public static double atan2(double y, double x)
从直角坐标 (x, y) 到极坐标 (r, theta) 的转换中返回角度 theta。此方法通过计算 -pi 到 pi 范围内的 y/x 的反正切来计算相位 theta。特别情况:
参数:
参数名称 | 参数描述 |
---|---|
y | 纵坐标 |
x | 横坐标 |
返回:
极坐标中点 (r, theta) 的 theta 分量,对应于笛卡尔坐标中的点 (x, y)。
public static double pow(double a, double b)
返回第一个参数的第二个参数次幂的值。 特别情况:
(在前面的描述中,浮点值被认为是整数当且仅当它是有限的并且是方法 ceil 的不动点,或者等效地,方法层的不动点。一个值是一个不动点 当且仅当将方法应用于值的结果等于该值时,才属于单参数方法。)
参数:
参数名称 | 参数描述 |
---|---|
a | 底 |
b | 指数 |
返回:
值 ab。
public static int round(float a)
返回最接近参数的 int,并舍入为正无穷大。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 要舍入为整数的浮点值。 |
返回:
参数的值四舍五入到最接近的 int 值。
public static long round(double a)
返回最接近参数的长整数,并舍入为正无穷大。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
a | 要舍入为 long 的浮点值。 |
返回:
参数的值四舍五入到最接近的 long 值。
public static double random()
返回一个带正号的双精度值,大于或等于 0.0 且小于 1.0。 返回值是伪随机选择的,从该范围(近似)均匀分布。
当这个方法第一次被调用时,它会创建一个新的伪随机数生成器,就像通过表达式一样
new java.util.Random()
这个新的伪随机数生成器随后用于对该方法的所有调用,并且不会在其他任何地方使用。
此方法已正确同步,以允许多个线程正确使用。 但是,如果许多线程需要以很高的速率生成伪随机数,则可能会减少每个线程对拥有自己的伪随机数生成器的争用。
返回:
大于或等于 0.0 且小于 1.0 的伪随机 double。
public static int addExact(int x, int y)
返回其参数的总和,如果结果溢出 int,则抛出异常。
参数:
参数名称 | 参数描述 |
---|---|
x | 第一个值 |
y | 第二个值 |
返回:
结果
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果结果溢出一个 int |
public static long addExact(long x, long y)
Returns the sum of its arguments, throwing an exception if the result overflows a long.
Parameters:
参数名称 | 参数描述 |
---|---|
x | 第一个值 |
y | 第二个值 |
返回:
结果
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果结果溢出一个long |
public static int subtractExact(int x, int y)
返回参数的差异,如果结果溢出 int,则抛出异常。
参数:
参数名称 | 参数描述 |
---|---|
x | 第一个值 |
y | 从第一个值中减去的第二个值 |
返回:
结果
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果结果溢出一个 int |
public static long subtractExact(long x, long y)
返回参数的差异,如果结果溢出 long 则抛出异常。
参数:
参数名称 | 参数描述 |
---|---|
x | 第一个值 |
y | 从第一个值中减去的第二个值 |
返回:
结果
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果结果溢出一个long |
public static int multiplyExact(int x, int y)
返回参数的乘积,如果结果溢出 int,则抛出异常。
参数:
参数名称 | 参数描述 |
---|---|
x | 第一个值 |
y | 第二个值 |
返回:
结果
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果结果溢出一个 int |
public static long multiplyExact(long x, long y)
返回参数的乘积,如果结果溢出 long 则抛出异常。
参数:
参数名称 | 参数描述 |
---|---|
x | 第一个值 |
y | 第二个值 |
返回:
结果
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果结果溢出一个long |
public static int toIntExact(long value)
返回long参数的值; 如果值溢出 int,则抛出异常。
参数:
参数名称 | 参数描述 |
---|---|
value | long值 |
返回:
作为 int 的参数
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果参数溢出一个 int |
public static int floorDiv(int x, int y)
返回小于或等于代数商的最大(最接近正无穷大)int 值。 有一种特殊情况,如果被除数为 Integer#MIN_VALUE,除数为 -1,则发生整数溢出,结果等于 Integer.MIN_VALUE。
参数:
参数名称 | 参数描述 |
---|---|
x | 被除数 |
y | 除数 |
返回:
小于或等于代数商的最大(最接近正无穷大)int 值。
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果除数 y 为零 |
public static long floorDiv(long x, long y)
返回小于或等于代数商的最大(最接近正无穷大)long 值。 有一种特殊情况,如果被除数是 Long#MIN_VALUE 而除数是 -1,则发生整数溢出,结果等于 Long.MIN_VALUE。
参数:
参数名称 | 参数描述 |
---|---|
x | 被除数 |
y | 除数 |
返回:
小于或等于代数商的最大(最接近正无穷大)long 值。
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果除数 y 为零 |
public static int floorMod(int x, int y)
返回 int 参数的底模。
底模为 x - (floorDiv(x, y) * y),与除数 y 具有相同的符号,并且在 -abs(y) < r < +abs(y) 的范围内。
floorDiv 和 floorMod 之间的关系是这样的:
有关示例以及与 % 运算符的比较,请参见 Math#floorMod(int, int)。
参数:
参数名称 | 参数描述 |
---|---|
x | 被除数 |
y | 除数 |
返回:
底模 x - (floorDiv(x, y) * y)
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果除数 y 为零 |
public static long floorMod(long x, long y)
返回长参数的底模。
底模为 x - (floorDiv(x, y) * y),与除数 y 具有相同的符号,并且在 -abs(y) < r < +abs(y) 的范围内。
floorDiv 和 floorMod 之间的关系是这样的:
参数:
参数名称 | 参数描述 |
---|---|
x | 被除数 |
y | 除数 |
返回:
底模 x - (floorDiv(x, y) * y)
Throws:
Throw名称 | Throw描述 |
---|---|
ArithmeticException | 如果除数 y 为零 |
public static int abs(int a)
返回 int 值的绝对值。 如果参数不是负数,则返回参数。 如果参数是否定的,则返回参数的否定。
请注意,如果参数等于 Integer#MIN_VALUE 的值,即最负的可表示 int 值,则结果是相同的值,即为负。
参数:
参数名称 | 参数描述 |
---|---|
a | 要确定其绝对值的参数。 |
返回:
参数的绝对值。
public static long abs(long a)
返回长值的绝对值。 如果参数不是负数,则返回参数。 如果参数是否定的,则返回参数的否定。
请注意,如果参数等于 Long#MIN_VALUE 的值(可表示的最负的 long 值),则结果是相同的值,即为负。
参数:
参数名称 | 参数描述 |
---|---|
a | 要确定其绝对值的参数。 |
返回:
参数的绝对值。
public static float abs(float a)
返回浮点值的绝对值。 如果参数不是负数,则返回参数。 如果参数是否定的,则返回参数的否定。 特别情况:
换句话说,结果与表达式的值相同:
Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))
参数:
参数名称 | 参数描述 |
---|---|
a | 要确定其绝对值的参数 |
返回:
参数的绝对值。
public static double abs(double a)
返回双精度值的绝对值。 如果参数不是负数,则返回参数。 如果参数是否定的,则返回参数的否定。 特别情况:
换句话说,结果与表达式的值相同:
Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)
参数:
参数名称 | 参数描述 |
---|---|
a | 要确定其绝对值的参数 |
返回:
参数的绝对值。
public static int max(int a, int b)
返回两个 int 值中的较大者。 也就是说,结果是更接近 Integer#MAX_VALUE 值的参数。 如果参数具有相同的值,则结果是相同的值。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个参数 |
b | 另一个参数 |
返回:
a 和 b 中的较大者。
public static long max(long a, long b)
返回两个 long 值中的较大者。 也就是说,结果是参数更接近 Long#MAX_VALUE 的值。 如果参数具有相同的值,则结果是相同的值。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个参数 |
b | 另一个参数 |
返回:
a 和 b 中的较大者。
public static float max(float a, float b)
返回两个浮点值中的较大者。 也就是说,结果是更接近正无穷大的参数。 如果参数具有相同的值,则结果是相同的值。 如果任一值为 NaN,则结果为 NaN。 与数值比较运算符不同,此方法认为负零严格小于正零。 如果一个参数为正零而另一个为负零,则结果为正零。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个参数 |
b | 另一个参数 |
返回:
a 和 b 中的较大者。
public static double max(double a, double b)
返回两个双精度值中的较大者。 也就是说,结果是更接近正无穷大的参数。 如果参数具有相同的值,则结果是相同的值。 如果任一值为 NaN,则结果为 NaN。 与数值比较运算符不同,此方法认为负零严格小于正零。 如果一个参数为正零而另一个为负零,则结果为正零。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个参数 |
b | 另一个参数 |
返回:
a 和 b 中的较大者。
public static int min(int a, int b)
返回两个 int 值中较小的一个。 也就是说,参数的结果更接近 Integer#MIN_VALUE 的值。 如果参数具有相同的值,则结果是相同的值。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个参数 |
b | 另一个参数 |
返回:
a 和 b 中较小的一个。
public static long min(long a, long b)
返回两个 long 值中较小的一个。 也就是说,结果是参数更接近 Long#MIN_VALUE 的值。 如果参数具有相同的值,则结果是相同的值。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个参数 |
b | 另一个参数 |
返回:
a 和 b 中较小的一个。
public static float min(float a, float b)
返回两个浮点值中较小的一个。 也就是说,结果是更接近负无穷大的值。 如果参数具有相同的值,则结果是相同的值。 如果任一值为 NaN,则结果为 NaN。 与数值比较运算符不同,此方法认为负零严格小于正零。 如果一个参数为正零而另一个为负零,则结果为负零。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个参数 |
b | 另一个参数 |
返回:
a 和 b 中较小的一个。
public static double min(double a, double b)
返回两个双精度值中较小的一个。 也就是说,结果是更接近负无穷大的值。 如果参数具有相同的值,则结果是相同的值。 如果任一值为 NaN,则结果为 NaN。 与数值比较运算符不同,此方法认为负零严格小于正零。 如果一个参数为正零而另一个为负零,则结果为负零。
参数:
参数名称 | 参数描述 |
---|---|
a | 一个参数 |
b | 另一个参数 |
返回:
a 和 b 中较小的一个。
public static double ulp(double d)
返回参数的 ulp 的大小。 double 值的最后一个单位 ulp 是该浮点值与幅度下一个更大的 double 值之间的正距离。 请注意,对于非 NaN x,ulp(-x) == ulp(x)。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
d | 要返回 ulp 的浮点值 |
返回:
参数的 ulp 大小
public static float ulp(float f)
返回参数的 ulp 的大小。 浮点值的最后一个单位 ulp 是该浮点值与幅度下一个更大的浮点值之间的正距离。 请注意,对于非 NaN x,ulp(-x) == ulp(x)。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
f | 要返回 ulp 的浮点值 |
返回:
参数的 ulp 大小
public static double signum(double d)
返回参数的符号函数; 如果参数为零,则为零,如果参数大于零,则为 1.0,如果参数小于零,则为 -1.0。
特别案例:
参数:
参数名称 | 参数描述 |
---|---|
d | 要返回其符号的浮点值 |
返回:
参数的符号函数
public static float signum(float f)
返回参数的符号函数; 如果参数为零,则为零,如果参数大于零,则为 1.0f,如果参数小于零,则为 -1.0f。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
f | 要返回其符号的浮点值 |
返回:
参数的符号函数
public static double sinh(double x)
返回 double 值的双曲正弦值。 x 的双曲正弦定义为 (ex - e-x)/2,其中 e 是 Math#E。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
x | 要返回其双曲正弦的数字。 |
返回:
x 的双曲正弦。
public static double cosh(double x)
返回 double 值的双曲余弦值。 x 的双曲余弦定义为 (ex + e-x)/2,其中 e 是 Math#E。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
x | 要返回其双曲余弦的数字。 |
返回:
x 的双曲余弦。
public static double tanh(double x)
返回 double 值的双曲正切值。 x 的双曲正切定义为 (ex - e-x)/(ex + e-x),换言之,Math#sinh/Math#cosh。 请注意,精确 tanh 的绝对值始终小于 1。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
x | 要返回其双曲正切的数字。 |
返回:
x 的双曲正切。
public static double hypot(double x, double y)
返回 sqrt(x2 +y2) 没有中间溢出或下溢。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
x | 一个值 |
y | 一个值 |
返回:
sqrt(x2 +y2) 没有中间溢出或下溢
public static double expm1(double x)
返回前 -1。 请注意,对于接近 0 的 x 值,expm1(x) + 1 的精确总和比 exp(x) 更接近 ex 的真实结果。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
x | 在计算 ex -1 时将 e 提高到的指数。 |
返回:
值 ex - 1。
public static double log1p(double x)
返回参数和 1 之和的自然对数。请注意,对于较小的值 x,log1p(x) 的结果比 log( 的浮点计算更接近 ln(1 + x) 的真实结果 1.0+x)。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
x | 一个值 |
返回:
ln(x + 1) 的值,x + 1 的自然对数
public static double copySign(double magnitude, double sign)
返回带有第二个浮点参数符号的第一个浮点参数。 对于此方法,NaN 符号参数始终被视为正数。
参数:
参数名称 | 参数描述 |
---|---|
magnitude | 提供结果大小的参数 |
sign | 提供结果符号的参数 |
返回:
具有大小和符号符号的值。
public static float copySign(float magnitude, float sign)
返回带有第二个浮点参数符号的第一个浮点参数。 对于此方法,NaN 符号参数始终被视为正数。
参数:
参数名称 | 参数描述 |
---|---|
magnitude | 提供结果大小的参数 |
sign | 提供结果符号的参数 |
返回:
具有大小和符号符号的值。
public static int getExponent(float f)
返回浮点数表示中使用的无偏指数。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
f | 一个浮点值 |
返回:
参数的无偏指数
public static int getExponent(double d)
返回用于表示双精度的无偏指数。 特别情况:
参数:
参数名称 | 参数描述 |
---|---|
d | 一个double值 |
返回:
参数的无偏指数
public static double nextAfter(double start, double direction)
返回第二个参数方向上与第一个参数相邻的浮点数。 如果两个参数比较相等,则返回第二个参数。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
start | 起始浮点值 |
direction | 指示应该返回 start 的哪个邻居或 start 的值 |
返回:
以方向相邻的浮点数开始的方向。
public static float nextAfter(float start, double direction)
返回第二个参数方向上与第一个参数相邻的浮点数。 如果两个参数比较相等,则返回与第二个参数等效的值。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
start | 起始浮点值 |
direction | 指示应该返回 start 的哪个邻居或 start 的值 |
返回:
以方向相邻的浮点数开始的方向。
public static double nextUp(double d)
返回正无穷方向上与 d 相邻的浮点值。 该方法在语义上等价于 nextAfter(d, Double.POSITIVE_INFINITY); 但是,nextUp 实现可能比其等效的 nextAfter 调用运行得更快。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
d | 起始浮点值 |
返回:
接近正无穷大的相邻浮点值。
public static float nextUp(float f)
返回在正无穷大方向上与 f 相邻的浮点值。 这个方法在语义上等价于 nextAfter(f, Float.POSITIVE_INFINITY); 但是,nextUp 实现可能比其等效的 nextAfter 调用运行得更快。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
f | 起始浮点值 |
返回:
接近正无穷大的相邻浮点值。
public static double nextDown(double d)
返回在负无穷方向上与 d 相邻的浮点值。 这个方法在语义上等价于 nextAfter(d, Double.NEGATIVE_INFINITY); 但是,nextDown 实现可能比其等效的 nextAfter 调用运行得更快。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
d | 起始浮点值 |
返回:
接近负无穷大的相邻浮点值。
public static float nextDown(float f)
返回在负无穷方向上与 f 相邻的浮点值。 该方法在语义上等价于 nextAfter(f, Float.NEGATIVE_INFINITY); 但是,nextDown 实现可能比其等效的 nextAfter 调用运行得更快。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
f | 起始浮点值 |
返回:
接近负无穷大的相邻浮点值。
public static double scalb(double d, int scaleFactor)
返回四舍五入的 d × 2scaleFactor,就像通过单个正确舍入的浮点乘以双精度值集的成员一样。 有关浮点值集的讨论,请参阅 Java 语言规范。 如果结果的指数在 Double#MIN_EXPONENT 和 Double#MAX_EXPONENT 之间,则答案是精确计算的。 如果结果的指数大于 Double.MAX_EXPONENT,则返回无穷大。 请注意,如果结果不正常,则可能会丢失精度; 也就是说,当 scalb(x, n) 为次正规时, scalb(scalb(x, n), -n) 可能不等于 x。 当结果为非 NaN 时,结果的符号与 d 相同。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
d | 要按 2 的幂进行缩放的数字。 |
scaleFactor | 用于缩放 d 的 2 的幂 |
返回:
d × 2scaleFactor
public static float scalb(float f, int scaleFactor)
返回 f × 2scaleFactor 舍入,就好像通过单个正确舍入的浮点乘以浮点值集的成员一样。 有关浮点值集的讨论,请参阅 Java 语言规范。 如果结果的指数介于 Float#MIN_EXPONENT 和 Float#MAX_EXPONENT 之间,则答案是精确计算的。 如果结果的指数大于 Float.MAX_EXPONENT,则返回无穷大。 请注意,如果结果不正常,则可能会丢失精度; 也就是说,当 scalb(x, n) 为次正规时, scalb(scalb(x, n), -n) 可能不等于 x。 当结果为非 NaN 时,结果的符号与 f 相同。
特别情况:
参数:
参数名称 | 参数描述 |
---|---|
f | 要按 2 的幂进行缩放的数字。 |
scaleFactor | 用于缩放 f 的 2 的幂 |
返回:
f × 2scaleFactor
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。