Java Math 类

Java.lang 包提供了一个包含方法的 Math 类 用于执行基本的数字运算,例如初等指数、对数、平方根和三角函数。

类声明

java.lang.Math 类的声明为:

 public final class Math
  extends Object

字段

序号字段和说明
1.static double E
比任何其他值更接近 e 的 double 值,自然对数的底数.
2.static double PI
更接近的 double 值与任何其他方法相比,圆的周长与其直径的比率.

java.lang.Math 方法

java.lang.Math 类有许多方法,如下所列:

成员方法

序号方法与方法说明
1.static double abs(double a)
返回双精度值的绝对值.
2.static float abs(float a)
返回浮点值的绝对值.
3.static int abs(int a)
返回 int 值的绝对值.
4.static long abs(long a)
返回 long 值的绝对值.
5.static double acos(double a)
返回值的反余弦值;返回的角度范围为 0.0 到 𝜋.
6.static int addExact( int x, int y)
返回其参数的总和,如果结果溢出 int,则抛出异常.
7.static long addExact(long x, long y)
返回其参数的总和,如果结果溢出 long 则抛出异常.
8.static double asin(double a)
返回值的反正弦;返回的角度在 -𝜋/2  到 𝜋/2 范围内.
9.static double atan(double a)
返回值的反正切值;返回的角度在 -𝜋/2 到  𝜋/2 范围内.
10.static double atan2(double y, double x)
返回直角坐标 (x, y) 到极坐标 (r, theta) 转换得到的角度 theta.
11.static double cbrt(double a)
返回 double 值的立方根.
12.static double ceil(double a)
返回大于的最小(最接近负无穷大)双精度值小于或等于参数,并且等于数学整数.
13.static double copySign(double magnitude, double sign)
返回第一个浮点参数和第二个浮点参数的符号.
14.static float copySign(float magnitude, float sign)
返回第一个浮点参数和第二个浮点的符号-point 参数.
15.static double cos(double a)
返回角度的三角余弦值.
16.static double cosh(double x)
返回双精度值的双曲余弦.
17.static int decrementExact(int a)
返回参数减一,如果结果溢出 int,则抛出异常.
18 .static long decrementExact(long a)
返回参数减一,如果结果溢出 long 则抛出异常.
19.static double exp(double x)
返回欧拉数 e 的双精度值次方.
20.static double expm1 (double x)
返回前-1.
21.static double Floor(double a)
返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值.
22.static int FloorDiv(int x, int y)
返回最大的 (最接近正无穷大)小于或等于代数商的 int 值.
23.static long FloorDiv(long x, long y)
返回小于或等于代数商的最大(最接近正无穷大)long 值.
24.static int FloorMod(int x, int y)
返回下限模数int 参数.
25.static long FloorMod(long x, long y)
返回长参数的下取模.
26.static int getExponent(double d)
返回双精度数表示中使用的无偏指数.
27.static int getExponent(float f)
返回浮点数表示中使用的无偏指数.
28.static double hypot(double x, double y)
返回sqrt(x2 +y2),没有中间上溢或下溢.
29.static double IEEEremainder(double x, double y)
按照 IEEE 754 标准的规定计算两个参数的余数运算.
30.static int IncrementExact(int x)
返回参数加一,如果结果溢出 int,则抛出异常.
31.static longincrementExact(long x)
返回参数加一,如果结果溢出long则抛出异常.
32.static double log(double a)
返回double 值的自然对数(以 e 为底).
33.static double log10( double a)
返回 double 值以 10 为底的对数.
34.static double log1p(double x)
返回参数与 1 之和的自然对数.
35.static double max(double a, double b)
返回两个 double 值中较大的一个.
36.static float max(float a, float b)
返回两个中的较大者浮点值.
37.static int max(int a, int b)
返回两个 int 值中较大的一个.
38.static long max(long a, long b)
返回两个长值中较大的一个.
39.static double min(double a, double b)
返回两个 double 值中较小的一个.
40.static float min(float a, float b)
返回两个浮点值中较小的一个.
41.static int min(int a, int b)
返回两个中较小的一个int 值.
42.static long min(long a,long b)
返回两个长整型值中较小的一个.
43.static intMultiplyExact (int x, int y)
返回参数的乘积,如果结果溢出 int,则抛出异常.
44.static longmultiplyExact(long x,long y)
返回参数的乘积,如果结果溢出long则抛出异常.
45.static int negateExact(int x)
返回参数的否定,如果结果溢出 int,则抛出异常.
46.static long negateExact(long x)
返回参数的负数,如果结果溢出 long,则抛出异常.
47.static double nextAfter(double start, double Direction)
返回与第一个参数相邻的浮点数第二个参数.
48.static float nextAfter(float start,double direction)
返回在第二个参数方向上与第一个参数相邻的浮点数.
49.static double nextDown(double d)
返回在负无穷大方向上与 d 相邻的浮点值.
50.static float nextDown(float f)
返回与 f 相邻的浮点值负无穷大的方向.
51.static double nextUp(double d)
返回在正无穷大方向上与 d 相邻的浮点值.
52.static float nextUp(float f)
返回 f 在正无穷方向上相邻的浮点值.
53 .static double pow(double a, double b)
返回第一个参数的幂次方的值第二个参数.
54.static double random()
返回带正号的双精度值,大于或等于 0.0 且小于 1.0.
55.static double rint(double a)
返回与参数值最接近且等于数学整数的 double 值.
56.static long round(double a)
返回最接近参数的 long,四舍五入为正无穷大.
57.static int round(float a)
返回最接近参数的 int,并舍入为正无穷大.
58.static double scalb(double a, int b)
返回四舍五入的 × 2b,就好像通过单个正确舍入的浮点乘法执行到 double 的成员一样值设置.
59.static float scalb(float a, int b)
返回四舍五入的 × 2b,就像通过单个正确舍入的浮点乘法与浮点值集的成员执行的一样.
60.static double signnum(double d)
返回参数的符号函数;如果参数为零,则为零;如果参数大于零,则为 1.0;如果参数小于零,则为 -1.0.
61.static float signum(float f)
返回参数的signum函数;如果参数为零,则为零;如果参数大于零,则为 1.0f;如果参数小于零,则为 -1.0f.
62.static double sin(double a)
返回角度的三角正弦值.
63 .static double sinh(double x)
返回 double 值的双曲正弦值.
64.static double sqrt(double a)
返回正确舍入的正平方根双精度值.
65.sstatic int subtractExact(int x, int y)
返回参数的差异,如果结果溢出 int,则抛出异常。
66.static long subtractExact(long x, long y)
返回参数的差值,如果结果溢出 long 则抛出异常.
67.static double tan(double a)
返回角度的三角正切.
68.static double tanh(double x)
返回双值的双曲正切.
69.

static double toDegrees(double angrad)

将以弧度为单位的角度转换为以度为单位的近似等效角度。

70.static int toIntExact(long value)
返回 long 参数的值;如果值溢出 int,则抛出异常.
71.static double toRadians(double angdeg )
将以度为单位的角度转换为以弧度为单位的近似等效角度.
72.static double ulp(double d)
返回参数 ulp 的大小.
73.static float ulp(float f)
返回参数 ulp 的大小.

继承的方法

该类继承了以下类的方法:

  • java.lang.Object

Java Math 类示例

下面的例子展示了Math类提供的一些重要方法的用法。
 package com.tutorialspoint;

public class MathDemo {

   public static void main(String[] args) {

      // 定义两个double类型的数字
      double x = 60984.1;
      double y = -497.99;

      // 获取 x 的自然对数
      System.out.println("Math.log(" + x + ")=" + Math.log(x));

      // 获取 y 的自然对数
      System.out.println("Math.log(" + y + ")=" + Math.log(y));

      // 获取最大值
      System.out.println("Math.max(" + x + ", y" + ")=" + Math.max(x,y));

      // 获取最小值
      System.out.println("Math.min(" + x + ", y" + ")=" + Math.min(x,y));

   }
} 
输出

让我们编译并运行上面的程序,这将产生以下结果 

Math.log(60984.1)=11.018368453441132
Math.log(-497.99)=NaN
Math.max(60984.1, y)=60984.1
Math.min(60984.1, y)=-497.99