|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.lang.StrictMath
public final class StrictMath
类 StrictMath
包含了用于执行基本数字运算的方法,如基本指数、对数、平方根和三角函数。
为了确保 Java 程序的可移植性,该包中的某些数学函数的定义需要与某些已公布的算法生成相同的结果。这些算法可用作包 fdlibm
(“免费发布的数学库”),在众所周知的网络库 netlib
中使用。这些算法都是用 C 编程语言编写的,并且因为它们能遵从 Java 浮点算法的规则,与所有浮点运算一同执行,从而被人们充分理解。
Java 数学库是根据 fdlibm
版本 5.3 定义的。其中 fdlibm
使用“IEEE 754 核心函数”版本(位于名字以字母 e
开头的文件中)提供了函数的多个定义(如 acos
)。需要 fdlibm
语义的方法是 sin
、cos
、tan
、asin
、acos
、atan
、exp
、log
、log10
、cbrt
、atan2
、pow
、sinh
、cosh
、tanh
、hypot
、expm1
和 log1p
。
字段摘要 | |
---|---|
static double |
E
double 值比任何其他值更接近于 e,即自然对数的底数。 |
static double |
PI
double 值比任何其他值更接近于 pi,即圆的周长与直径之比。 |
方法摘要 | |
---|---|
static double |
abs(double a)
返回 double 值的绝对值。 |
static float |
abs(float a)
返回 float 值的绝对值。 |
static int |
abs(int a)
返回 int 值的绝对值。 |
static long |
abs(long a)
返回 long 值的绝对值。 |
static double |
acos(double a)
返回角的反余弦,范围在 0.0 到 pi 之间。 |
static double |
asin(double a)
返回角的反正弦,范围在 -pi/2 到 pi/2 之间。 |
static double |
atan(double a)
返回角的反正切,范围在 -pi/2 到 pi/2 之间。 |
static double |
atan2(double y,
double x)
将矩形坐标 ( x , y ) 转换成极坐标 (r, theta)。 |
static double |
cbrt(double a)
返回 double 值的立方根。 |
static double |
ceil(double a)
返回最小的(最接近负无穷大) double 值,该值大于或等于参数,并且是整数。 |
static double |
cos(double a)
返回角的三角余弦。 |
static double |
cosh(double x)
返回 double 值的双曲线余弦。 |
static double |
exp(double a)
返回欧拉数 e 的 double 次幂的值。 |
static double |
expm1(double x)
返回 ex -1。 |
static double |
floor(double a)
返回最大的(最接近正无穷大) double 值,该值小于或等于参数,并且是整数。 |
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) double 值的自然对数。 |
static double |
log10(double a)
返回 double 值的底数为 10 的对数。 |
static double |
log1p(double x)
返回参数与 1 的和的自然对数。 |
static double |
max(double a,
double b)
返回两个 double 值中较大的一个。 |
static float |
max(float a,
float b)
返回两个 float 值中较大的一个。 |
static int |
max(int a,
int b)
返回两个 int 值中较大的一个。 |
static long |
max(long a,
long b)
返回两个 long 值中较大的一个。 |
static double |
min(double a,
double b)
返回两个 double 值中较小的一个。 |
static float |
min(float a,
float b)
返回两个 float 值中较小的一个。 |
static int |
min(int a,
int b)
返回两个 int 值中较小的一个。 |
static long |
min(long a,
long b)
返回两个 long 值中较小的一个。 |
static double |
pow(double a,
double b)
返回第一个参数的第二个参数次幂的值。 |
static double |
random()
返回带有正号的 double 值,大于或等于 0.0 ,小于 1.0 。 |
static double |
rint(double a)
返回其值最接近参数并且是整数的 double 值。 |
static long |
round(double a)
返回最接近参数的 long 。 |
static int |
round(float a)
返回最接近参数的 int 。 |
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)
返回正确舍入的 double 值的平方根。 |
static double |
tan(double a)
返回角的三角正切。 |
static double |
tanh(double x)
返回 double 值的双曲线正切。 |
static double |
toDegrees(double angrad)
将用弧度测量的角转换为近似相等的用度数测量的角。 |
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
double
值比任何其他值更接近于 e,即自然对数的底数。
public static final double 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)
a
- 要返回其反正弦的值。
public static double acos(double a)
a
- 要返回其反余弦的值。
public static double atan(double a)
a
- 要返回其反正切的值。
public static double toRadians(double angdeg)
angdeg
- 用度数表示的角。
angrad
的弧度值。public static double toDegrees(double angrad)
cos(toRadians(90.0))
与 0.0
精确相等。
angrad
- 用弧度表示的角。
angrad
的角度值。public static double exp(double a)
double
次幂的值。特殊情况是:
a
- e 的指数。
a
,其中 e 是自然对数的底数。public static double log(double a)
double
值的自然对数。特殊情况是:
a
- 一个值。
a
的值,a
的自然对数。public static double log10(double a)
double
值的底数为 10 的对数。特殊情况是:
a
- 一个值
a
的底数为 10 的对数。public static double sqrt(double a)
double
值的平方根。特殊情况是:
double
值。
a
- 一个值。
a
的正平方根。public static double cbrt(double a)
double
值的立方根。对于正有限值 x
,cbrt(-x) == -cbrt(x)
;也就是说,负值的立方根是该值大小的负立方根。特殊情况是:
a
- 一个值。
a
的立方根。public static double IEEEremainder(double f1, double f2)
f1 - f2
× n,其中 n 是最接近 f1/f2
的商的准确算术值的整数,如果两个整数都同样接近 f1/f2
,那么 n 是其中的偶数。如果余数是零,则它的符号与第一个参数的符号相同。特殊情况是:
f1
- 被除数。f2
- 除数。
f1
除以 f2
的余数。public static double ceil(double a)
double
值,该值大于或等于参数,并且是整数。特殊情况是:
StrictMath.ceil(x)
的值与 -StrictMath.floor(-x)
的值完全一样。
a
- 一个值。
public static double floor(double a)
double
值,该值小于或等于参数,并且是整数。特殊情况是:
a
- 一个值。
public static double rint(double a)
double
值。如果两个整数的 double
值都同样接近于参数值,那么结果取偶数。特殊情况是:
a
- 一个值。
a
的整数浮点值。public static double atan2(double y, double x)
x
, y
) 转换成极坐标 (r, theta)。该方法通过计算 y/x
的反正切值来计算相 (phase) theta,范围为从 -pi 到 pi。特殊情况是:
double
值。
double
值。
double
值。
double
值。
double
值。
double
值。
double
值。
double
值。
y
- 纵坐标x
- 横坐标
public static double pow(double a, double b)
double
值,那么该结果恰好等于第一个参数的第二个参数次幂的算术结果。(在前面的描述中,当且仅当浮点数为有限值并且是方法 ceil
的定点数,或者是方法 floor
的定点数时,才可以认为浮点值是整数。当且仅当将方法应用到值的结果等于该值时,该值才是带有一个参数的方法的定点值。)
a
- 底数。b
- 指数。
ab
。public static int round(float a)
int
。通过加上 1/2 将该结果舍入为整数,取结果的基数并强制转换为 int
类型。换句话说,结果等于以下表达式的值:
(int)Math.floor(a + 0.5f)
特殊情况是:
Integer.MIN_VALUE
的值,那么结果等于 Integer.MIN_VALUE
的值。
Integer.MAX_VALUE
的值,那么结果等于 Integer.MAX_VALUE
的值。
a
- 要舍入为整数的浮点值。
int
值的参数值。Integer.MAX_VALUE
,
Integer.MIN_VALUE
public static long round(double a)
long
。通过加上 1/2 将该结果舍入为整数,取结果的基数并强制转换为 long
类型。换句话说,结果等于以下表达式的值:
(long)Math.floor(a + 0.5d)
特殊情况是:
Long.MIN_VALUE
的值,那么结果等于 Long.MIN_VALUE
的值。
Long.MAX_VALUE
的值,那么结果等于 Long.MAX_VALUE
的值。
a
- 舍入为 long
的浮点值。
long
值的参数值。Long.MAX_VALUE
,
Long.MIN_VALUE
public static double random()
double
值,大于或等于 0.0
,小于 1.0
。返回值是一个伪随机选择的数,在上述范围内(大致)均匀分布。
第一次调用该方法时,它将创建一个新的伪随机数生成器,正如通过表达式
一样。之后,该新的伪随机数生成器可用于针对该方法的所有调用,但不能在其他地方使用。new java.util.Random
在经过适当同步后,允许多个线程正确地使用该方法。然而,如果很多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己的伪随机数生成器的争用。
0.0
但小于 1.0
的伪随机 double
数。Random.nextDouble()
public static int abs(int a)
int
值的绝对值。如果参数不是负数,则返回该参数。如果参数是负数,则返回该参数的相反数。
注意,如果参数等于 Integer.MIN_VALUE
的值,即能够表示的最小负 int
值,则结果与该值相同且为负。
a
- 要确定绝对值的参数。
Integer.MIN_VALUE
public static long abs(long a)
long
值的绝对值。如果参数不是负数,则返回该参数。如果参数是负数,则返回该参数的相反数。
注意,如果参数等于 Long.MIN_VALUE
的值,即能够表示的最小负 long
值,则结果与该值相同且为负。
a
- 要确定绝对值的参数。
Long.MIN_VALUE
public static float abs(float a)
float
值的绝对值。如果参数不是负数,则返回该参数。如果参数是负数,则返回该参数的相反数。特殊情况是:
Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))
a
- 要确定绝对值的参数。
public static double abs(double a)
double
值的绝对值。如果参数不是负数,则返回该参数。如果参数是负数,则返回该参数的相反数。特殊情况是:
Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)
a
- 要确定绝对值的参数。
public static int max(int a, int b)
int
值中较大的一个。也就是说,结果是更接近 Integer.MAX_VALUE
值的参数。如果参数值相同,则结果是该相同值。
a
- 参数。b
- 另一个参数。
a
和 b
中大的较大者。Long.MAX_VALUE
public static long max(long a, long b)
long
值中较大的一个。也就是说,结果是更接近 Long.MAX_VALUE
值的参数。如果参数值相同,则结果是该相同值。
a
- 参数。b
- 另一个参数。
a
和 b
中的较大者。Long.MAX_VALUE
public static float max(float a, float b)
float
值中较大的一个。也就是说,结果是更接近正无穷大的参数。如果参数值相同,则结果是该相同值。如果两个值都是 NaN,那么结果就是 NaN。与数值比较运算不同,该方法认为负零严格小于正零。如果一个参数是正零,另一个参数是负零,那么结果就是正零。
a
- 参数。b
- 另一个参数。
a
和 b
中的较大者。public static double max(double a, double b)
double
值中较大的一个。也就是说,结果是更接近正无穷大的参数。如果参数值相同,则结果是该相同值。如果两个值都是 NaN,那么结果就是 NaN。与数值比较运算不同,该方法认为负零严格小于正零。如果一个参数是正零,另一个参数是负零,那么结果就是正零。
a
- 参数。b
- 另一个参数。
a
和 b
中的较大者。public static int min(int a, int b)
int
值中较小的一个。也就是说,结果是更接近 Integer.MIN_VALUE
值的参数。如果参数值相同,则结果是该相同值。
a
- 参数。b
- 另一个参数。
a
和 b
中的较小者。Long.MIN_VALUE
public static long min(long a, long b)
long
值中较小的一个。也就是说,结果是更接近 Long.MIN_VALUE
值的参数。如果参数值相同,则结果是该相同值。
a
- 参数。b
- 另一个参数。
a
和 b
中的较小者。Long.MIN_VALUE
public static float min(float a, float b)
float
值中较小的一个。也就是说,结果是更接近负无穷大的值。如果参数值相同,则结果是该相同值。如果两个值都是 NaN,那么结果就是 NaN。与数值比较运算不同,该方法认为负零严格小于正零。如果一个参数是正零,另一个参数是负零,那么结果是负零。
a
- 参数。b
- 另一个参数。
a
和 b
中的较小者。public static double min(double a, double b)
double
值中较小的一个。也就是说,结果是更接近负无穷大的值。如果参数值相同,则结果是该相同值。如果两个值都是 NaN,那么结果就是 NaN。与数值比较运算不同,该方法认为负零严格小于正零。如果一个参数是正零,另一个参数是负零,那么结果是负零。
a
- 参数。b
- 另一个参数。
a
和 b
中的较小者。public static double ulp(double d)
double
值的 ulp 是该浮点值与下一个较大 double
值之间的正距离。注意,对于非 NaN x,ulp(-x) == ulp(x)
。
特殊情况是:
Double.MIN_VALUE
。
Double.MAX_VALUE
,那么结果等于 2971。
d
- 要返回其 ulp 的浮点值。
public static float ulp(float f)
float
值的 ulp 是该浮点值与下一个较大 float
值之间的正距离。注意,对于非 NaN x,ulp(-x) == ulp(x)
。
特殊情况是:
Float.MIN_VALUE
。
Float.MAX_VALUE
,那么结果等于 2104。
d
- 要返回其 ulp 的浮点值。
public static double signum(double d)
特殊情况是:
d
- 要返回其符号函数的浮点值。
public static float signum(float f)
特殊情况是:
d
- 要返回其符号函数的浮点值。
public static double sinh(double x)
double
值的双曲线正弦。x 的双曲线正弦的定义是 (ex - e-x)/2,其中e 是 欧拉数。
特殊情况是:
x
- 要返回其双曲线正弦的数。
x
的双曲线正弦。public static double cosh(double x)
double
值的双曲线余弦。x 的双曲线余弦的定义是 (ex + e-x)/2,其中e 是 欧拉数。
特殊情况是:
1.0
。
x
- 要返回其双曲线余弦的数。
x
的双曲线余弦。public static double tanh(double x)
double
值的双曲线正切。x 的双曲线正切的定义是 (ex - e-x)/(ex + e-x),即 sinh(x)/cosh(x)。注意,准确的双曲正切绝对值始终小于 1。
特殊情况是:
+1.0
。
-1.0
。
x
- 要返回其双曲线正切的数。
x
的双曲线正切。public static double hypot(double x, double y)
特殊情况是:
x
- 一个值。y
- 一个值。
public static double expm1(double x)
expm1(x)
+ 1 的准确和比 exp(x)
更接近 ex 的真实结果。
特殊情况是:
x
- 在 ex
-1 的计算中 e 的指数。
x
- 1 值。public static double log1p(double x)
x
值,log1p(x)
的结果比 log(1.0+x)
的浮点计算结果更接近 ln(1 + x
) 的真实结果。
特殊情况是:
x
- 一个值。
x
+ 1) 的值,x
+ 1 的自然对数。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。