|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang
类 Math
java.lang.Object java.lang.Math
-
public final class Math
- extends Object
Math
类包含基本的数字操作,如指数、对数、平方根和三角函数。
与 StrictMath
类的某些数值方法不同,并不是 Math
类的所有等效函数的实现都定义为返回逐位相同的结果。这一宽限允许在不要求严格可重复性的地方实现更好的性能。
默认情况下,很多 Math
方法仅调用 StrictMath
中的等效方法来完成它们的实现。代码生成器鼓励使用特定于平台的本机库或者在可用的地方使用微处理器指令,来提供对 Math
方法的更高性能的实现。这种更高性能的实现仍然必须遵守 Math
的规范。
实现规范的质量涉及到两种属性,即返回结果的准确性和方法的单调性。浮点 Math
方法的准确性根据 ulp(units in the last place,最后一位的进退位)来衡量。对于一个给定的浮点格式,特定实数值的 ulp 是将该数值括起来的两个浮点值的差。讨论方法的准确性是从整体上考虑的,而不是针对具体的参数,引用的 ulp 数是为了考虑参数的最差情况的误差。如果一个方法的误差总是小于 0.5 ulp,则该方法始终返回最接近准确结果的浮点数;这种方法就是正确舍入。一种正确舍入的方法通常能得到最佳的浮点近似值,然而,对于很多浮点方法来说,进行正确的舍入有些不切实际。相反,对于 Math
类来说,有些方法允许误差在 1 或 2 ulp 的范围内。在非正式情况下,对于 1 ulp 的误差范围,当准确结果是可表示的数值时,应该按照计算结果返回准确结果;否则,返回将准确结果括起来的两个浮点值。对于值很大的准确结果,括号的一端可以是无穷大。除了个别参数的准确性之外,维护不同参数的方法之间的正确关系也很重要。因此,大多数误差大于 0.5 ulp 的方法都要求是半单调的:只要数学函数是非递减的,浮点近似值就是非递减的;同样地,只要数学函数是非递增的,浮点近似值就是非递增的。不是所有准确性为 1 ulp 的近似值都能自动满足单调性要求。
- 从以下版本开始:
- JDK1.0
字段摘要 | |
---|---|
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.0;如果参数小于零,则返回 -1.0。 |
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 |
字段详细信息 |
---|
E
public static final double E
-
double
值比任何其他值更接近于 e,即自然对数的底数。- 另请参见:
- 常量字段值
PI
public static final double PI
-
double
值比任何其他值更接近圆的周长与直径之比 pi。- 另请参见:
- 常量字段值
方法详细信息 |
---|
sin
public static double sin(double a)
-
返回角的三角正弦。特殊情况是:
- 如果参数是 NaN 或无穷大,那么结果是 NaN。
- 如果参数是零,那么结果是零,符号与参数符号相同。
计算结果必须在准确结果的 1 ulp 范围内。结果必须具有半单调性。
-
- 参数:
-
a
- 以弧度表示的角。 - 返回:
- 参数的正弦。
cos
public static double cos(double a)
-
返回角的三角余弦。特殊情况是:
- 如果参数是 NaN 或无穷大,那么结果是 NaN。
计算结果必须在准确结果的 1 ulp 范围内。结果必须具有半单调性。
-
- 参数:
-
a
- 以弧度表示的角。 - 返回:
- 参数的余弦。
tan
public static double tan(double a)
-
返回角的三角正切。特殊情况是:
- 如果参数是 NaN 或无穷大,那么结果是 NaN。
- 如果参数是零,那么结果是零,符号与参数符号相同。
计算结果必须在准确结果的 1 ulp 范围内。结果必须具有半单调性。
-
- 参数:
-
a
- 以弧度表示的角。 - 返回:
- 参数的正切。
asin
public static double asin(double a)
-
返回角的反正弦,范围在 -pi/2 到 pi/2 之间。特殊情况是:
- 如果参数是 NaN 或它的绝对值大于 1,那么结果是 NaN。
- 如果参数是零,那么结果是零,符号与参数符号相同。
计算结果必须在准确结果的 1 ulp 范围内。结果必须具有半单调性。
-
- 参数:
-
a
- 要返回其反正弦的值。 - 返回:
- 参数的反正弦。
acos
public static double acos(double a)
-
返回角的反余弦,范围在 0.0 到 pi 之间。特殊情况是:
- 如果参数是 NaN 或它的绝对值大于 1,那么结果是 NaN。
计算结果必须在准确结果的 1 ulp 范围内。结果必须具有半单调性。
-
- 参数:
-
a
- 要返回其反余弦的值。 - 返回:
- 参数的反余弦。
atan
public static double atan(double a)
-
返回角的反正切,范围在 -pi/2 到 pi/2 之间。特殊情况是:
- 如果参数是 NaN,那么结果是 NaN。
- 如果参数是零,那么结果是零,符号与参数符号相同。
计算结果必须在准确结果的 1 ulp 范围内。结果必须具有半单调性。
-
- 参数:
-
a
- 要返回其反正切的值。 - 返回:
- 参数的反正切。