所有类


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 doubleE
          double 值比任何其他值更接近于 e,即自然对数的底数。
static doublePI
          double 值比任何其他值更接近圆的周长与直径之比 pi
 
方法摘要
static doubleabs(double a)
          返回 double 值的绝对值。
static floatabs(float a)
          返回 float 值的绝对值。
static intabs(int a)
          返回 int 值的绝对值。
static longabs(long a)
          返回 long 值的绝对值。
static doubleacos(double a)
          返回角的反余弦,范围在 0.0 到 pi 之间。
static doubleasin(double a)
          返回角的反正弦,范围在 -pi/2 到 pi/2 之间。
static doubleatan(double a)
          返回角的反正切,范围在 -pi/2 到 pi/2 之间。
static doubleatan2(double y, double x)
          将矩形坐标 (xy) 转换成极坐标 (r, theta)。
static doublecbrt(double a)
          返回 double 值的立方根。
static doubleceil(double a)
          返回最小的(最接近负无穷大)double 值,该值大于或等于参数,并且等于某个整数。
static doublecos(double a)
          返回角的三角余弦。
static doublecosh(double x)
          返回 double 值的双曲线余弦。
static doubleexp(double a)
          返回欧拉数 edouble 次幂的值。
static doubleexpm1(double x)
          返回 ex -1。
static doublefloor(double a)
          返回最大的(最接近正无穷大)double 值,该值小于或等于参数,并且等于某个整数。
static doublehypot(double x, double y)
          返回 sqrt(x2 +y2),没有中间溢出或下溢。
static doubleIEEEremainder(double f1, double f2)
          按照 IEEE 754 标准的规定,对两个参数进行余数运算。
static doublelog(double a)
          返回(底数是 edouble 值的自然对数。
static doublelog10(double a)
          返回 double 值的底数为 10 的对数。
static doublelog1p(double x)
          返回参数与 1 的和的自然对数。
static doublemax(double a, double b)
          返回两个 double 值中较大的一个。
static floatmax(float a, float b)
          返回两个 float 值中较大的一个。
static intmax(int a, int b)
          返回两个 int 值中较大的一个。
static longmax(long a, long b)
          返回两个 long 值中较大的一个。
static doublemin(double a, double b)
          返回两个 double 值中较小的一个。
static floatmin(float a, float b)
          返回两个 float 值中较小的一个。
static intmin(int a, int b)
          返回两个 int 值中较小的一个。
static longmin(long a, long b)
          返回两个 long 值中较小的一个。
static doublepow(double a, double b)
          返回第一个参数的第二个参数次幂的值。
static doublerandom()
          返回带正号的 double 值,大于或等于 0.0,小于 1.0
static doublerint(double a)
          返回其值最接近参数并且是整数的 double 值。
static longround(double a)
          返回最接近参数的 long
static intround(float a)
          返回最接近参数的 int
static doublesignum(double d)
          返回参数的符号函数;如果参数是零,则返回零;如果参数大于零,则返回 1.0;如果参数小于零,则返回 -1.0。
static floatsignum(float f)
          返回参数的符号函数;如果参数是零,则返回零;如果参数大于零,则返回 1.0;如果参数小于零,则返回 -1.0。
static doublesin(double a)
          返回角的三角正弦。
static doublesinh(double x)
          返回 double 值的双曲线正弦。
static doublesqrt(double a)
          返回正确舍入的 double 值的正平方根。
static doubletan(double a)
          返回角的三角正切。
static doubletanh(double x)
          返回 double 值的双曲线余弦。
static doubletoDegrees(double angrad)
          将用弧度测量的角转换为近似相等的用度数测量的角。
static doubletoRadians(double angdeg)
          将用度数测量的角转换为近似相等的用弧度测量的角。
static doubleulp(double d)
          返回参数的 ulp 大小。
static floatulp(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 - 要返回其反正切的值。
返回:
参数的反正切。