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 的近似值都能自动满足单调性要求。
字段摘要 | |
---|---|
static double | E 比任何其他值都更接近 e(即自然对数的底数)的 double 值。 |
static double | PI 比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。 |
方法摘要 | |
---|---|
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),返回所得角theta。 |
static double | cbrt(double a) 返回 double 值的立方根。 |
static double | ceil(double a) 返回最小的(最接近负无穷大) double 值,该值大于等于参数,并等于某个整数。 |
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 的 double 次幂的值。 |
static double | expm1(double x) 返回 ex -1。 |
static double | floor(double a) 返回最大的(最接近正无穷大) double 值,该值小于等于参数,并等于某个整数。 |
static int | getExponent(double d) 返回 double 表示形式中使用的无偏指数。 |
static int | getExponent(float f) 返回 float 表示形式中使用的无偏指数。 |
static double | hypot(double x, double y) 返回 sqrt(x2 +y2),没有中间溢出或下溢。 |
static double | IEEEremainder(double f1, double f2) 按照 IEEE 754 标准的规定,对两个参数进行余数运算。 |
static double | log(double a) 返回 double 值的自然对数(底数是 e)。 |
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 | nextAfter(double start, double direction) 返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。 |
static float | nextAfter(float start, double direction) 返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。 |
static double | nextUp(double d) 返回 d 和正无穷大之间与 d 相邻的浮点值。 |
static float | nextUp(float f) 返回 f 和正无穷大之间与 f 相邻的浮点值。 |
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 | scalb(double d, int scaleFactor) 返回 d × 2scaleFactor ,其舍入方式如同将一个正确舍入的浮点值乘以 double 值集合中的一个值。 |
static float | scalb(float f, int scaleFactor) 返回 f × 2scaleFactor ,其舍入方式如同将一个正确舍入的浮点值乘以 float 值集合中的一个值。 |
static double | signum(double d) 返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。 |
static float | signum(float f) 返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 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 大小。 |