Java 简明教程

Java - Math Class

Java Math Class

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

Math Class Declaration

以下是 java.lang.Math 类的声明 −

public final class Math
   extends Object

Java Math Class Fields

以下是 java.lang.Math 类的字段 −

  1. static double E − 这是一个比任何其他值更接近自然对数底 e 的双精度值。

  2. static double PI − 这是一个比任何其他值更接近圆周率 pi(圆的周长与直径之比)的双精度值。

Java Math Class Methods

Sr.No.

Method & Description

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 到 pi 之间的范围内。

6

static double asin(double a) 该方法返回一个值的反正切值;返回的角度在 -pi/2 到 pi/2 之间的范围内。

7

static double atan(double a) 该方法返回一个值的反正切值;返回的角度在 -pi/2 到 pi/2 之间的范围内。

8

static double atan2(double y, double x) 此方法返回将直角坐标 (x, y) 转换为极坐标 (r, theta) 的角度 theta。

9

static double cbrt(double a) 此方法返回双精度值的立方根。

10

static double ceil(double a) 此方法返回大于等于参数的最小(最接近负无穷大)双精度值,并且等于数学整数。

11

static double copySign(double magnitude, double sign) 此方法返回带有第二个浮点数参数符号的第一个浮点数参数。

12

static float copySign(float magnitude, float sign) 此方法返回带有第二个浮点数参数符号的第一个浮点数参数。

13

static double cos(double a) 此方法返回某个角度的三角余弦。

14

static double cosh(double x) 此方法返回双精度值的双曲余弦。

15

static double exp(double a) 此方法返回欧拉数 e 的双精度值次幂。

16

static double expm1(double x) 此方法返回 ex -1。

17

static double floor(double a) 此方法返回小于等于参数的最大的(最接近正无穷大)双精度值,并且等于数学整数。

18

static int getExponent(double d) 此方法返回双精度表示中使用的无偏指数。

19

static int getExponent(float f) 此方法返回浮点表示中使用的无偏指数。

20

static double hypot(double x, double y) 此方法返回 sqrt(x2 +y2) 而不会产生中间溢出或下溢。

21

static double IEEEremainder(double f1, double f2) 此方法根据 IEEE 754 标准对两个参数计算取余操作。

22

static double log(double a) 此方法返回双精度值的自然对数 (底数为 e)。

23

static double log10(double a) 此方法返回双精度值的以 10 为底的对数。

24

static double log1p(double x) 此方法返回自变量和 1 之和的自然对数。

25

static double max(double a, double b) 此方法返回两个双精度值中的较大值。

26

static float max(float a, float b) 此方法返回两个浮点值中的较大值。

27

static int max(int a, int b) 此方法返回两个 int 值中较大的值。

28

static long max(long a, long b) 此方法返回两个 long 值中较大的值。

29

static double min(double a, double b) 此方法返回两个 double 值中较小的值。

30

static float min(float a, float b) 此方法返回两个 float 值中较小的值。

31

static int min(int a, int b) 此方法返回两个 int 值中较小的值。

32

static long min(long a, long b) 此方法返回两个 long 值中较小的值。

33

static double nextAfter(double start, double direction) 此方法返回浮点数,该浮点数在第二个参数的方向上邻近第一个参数。

34

static float nextAfter(float start, double direction) 此方法返回浮点数,该浮点数在第二个参数的方向上邻近第一个参数。

35

static double nextUp(double d) 此方法返回浮点数,该浮点数在正无穷大方向上邻近 d。

36

static float nextUp(float f) 此方法返回浮点数,该浮点数在正无穷大方向上邻近 f。

37

static double pow(double a, double b) 此方法返回第一个参数乘以第二个参数幂的值。

38

static double random() 此方法返回正号的双精度值,该值大于或等于 0.0 且小于 1.0。

39

static double rint(double a) 此方法返回与其参数值最接近的双精度值,并等于数学整数。

40

static long round(double a) 此方法返回与参数最接近的长整数。

41

static int round(float a) 此方法返回与参数最接近的整数。

42

static double scalb(double d, int scaleFactor) 此方法返回 d × 2scaleFactor,就像由单个正确舍入的浮点数乘法对双精度值组成员执行一样进行舍入。

43

static float scalb(float f, int scaleFactor) 此方法返回 f × 2scaleFactor,就像由单个正确舍入的浮点数乘法对浮点值组成员执行一样进行舍入。

44

static double signum(double d) 此方法返回该参数的符号函数;如果该参数为零,则返回零;如果该参数大于零,则返回 1.0;如果该参数小于零,则返回 -1.0。

45

static float signum(float f) 此方法返回该参数的符号函数;如果该参数为零,则返回零;如果该参数大于零,则返回 1.0f;如果该参数小于零,则返回 -1.0f。

46

static double sin(double a) 此方法返回双精度值的双曲正弦。

47

static double sinh(double x) 此方法返回双精度值的双曲正弦。

48

static double sqrt(double a) 此方法返回双精度值的正确舍入正平方根。

49

static double tan(double a) 此方法返回角的三角正切。

50

static double tanh(double x) 此方法返回双精度值的双曲正切。

51

static double toDegrees(double angrad) 此方法将以弧度为单位测量的角转换为近似等效的以度为单位测量的角。

52

static double toRadians(double angdeg) 此方法将以度为单位测量的角转换为近似等效的以弧度为单位测量的角。

53

static double ulp(double d) 此方法返回参数的 ulp 大小。

54

static double ulp(float f) 此方法返回参数的 ulp 大小。

Methods Inherited

此类从以下类中继承方法:

  1. java.lang.Object

Java Math Class Example

以下示例演示了 Math 类提供的一些重要方法的使用。

package com.tutorialspoint;

public class MathDemo {

   public static void main(String[] args) {

      // get two double numbers
      double x = 60984.1;
      double y = -497.99;

      // get the natural logarithm for x
      System.out.println("Math.log(" + x + ")=" + Math.log(x));

      // get the natural logarithm for y
      System.out.println("Math.log(" + y + ")=" + Math.log(y));

      // get the max value
      System.out.println("Math.max(" + x + ", y" + ")=" + Math.max(x,y));

      // get the min value
      System.out.println("Math.min(" + x + ", y" + ")=" + Math.min(x,y));

   }
}

Output

让我们编译并运行上述程序,这将生成以下结果 −

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