Java.lang.Math的方法讲解

199 阅读4分钟

1. abs(double a)

返回double值得绝对值

public class Test01 {
    public static void main(String[] args) {
        System.out.println(Math.abs(-100));
    }
}
结果为:100

2.acos(double a)

返回值的反余弦值;返回的角度在0.0到π的范围内,参数a代表的是弧度。

public class Test01 {
    public static void main(String[] args) {
        double x = Math.PI/2;
        System.out.println("x=" + x);
        x = Math.toRadians(x);
        System.out.println(x);
        System.out.println(Math.acos(x));
    }
}

3. addExact(int x,int y)

返回参数的总和,结果为int型,如果结果溢出则抛出异常。

public class Test01 {
    public static void main(String[] args) {
        //返回参数总和
        System.out.println(Math.addExact(5,6));
    }
}

结果为:11;

addExact(long x,long y):返回参数的总和,结果为long型,如果结果溢出则抛出异常。

4. asin(double a)

返回值的反正弦值;返回的角度在0.0到π的范围内,参数a代表的是弧度,返回的角度在-PI/2到PI/2的范围内

5. atan(double a)

返回值的反正切值;返回的角度在0.0到π的范围内,参数a代表的是弧度,返回的角度在-PI/2到PI/2的范围内。

6. atan(double y ,double x)

用于将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。该方法通过计算 y/x 的反正切值来计算相角 theta,范围为从 -pi 到 pi。

7. ceil(double a)

返回大于或等于参数且等于数学整数的最小值(最接近负无穷大) double

public class Test01 {
    public static void main(String[] args) {
        System.out.println(Math.ceil(6.6));
        System.out.println(Math.ceil(-6.6));
    }
}

结果为:7.0 -6.0

8. copySign(double magnitude,double sign)

返回带有第二个浮点参数符号的第一个浮点参数。

public class Test01 {
    public static void main(String[] args) {
        System.out.println(Math.copySign(6.6,5));
        System.out.println(Math.copySign(6.6,-5));
    }
}

结果为:6.6 -6.6

9. decrementExact(int a)

返回参数递减1,如果结果溢出 int则抛出异常。

public class Test01 {
    public static void main(String[] args) {
        System.out.println(Math.decrementExact(6));
        System.out.println(Math.decrementExact(-6));
    }
}

结果为:5 -7

10. exp(double a)

用于返回自然数底数e的参数次方.

System.out.println(Math.exp(2) );

结果为:7.38905609893065floor

返回e^x - 1.

System.out.println(Math.expm1(2) );

结果为:6.38905609893065

11.floor(double a)

返回小于等于x的最大整数,即对浮点数向上取整.

public class Test01 {
    public static void main(String[] args) {
        System.out.println(Math.floor( 4.2) );
        System.out.println(Math.floor( -4.2) );
    }
}

结果为:4.0 -5.0

12. floorDiv(long x ,int y)

第一个参数除以第二参数,然后针对结果执行floor操作,返回小于或等于商的整数(最接近正无穷大)。

public class Test01 {
    public static void main(String[] args) {
        System.out.println(Math.floorDiv((long) 4.2,2) );
    }
}

结果为:2

13. floorMod(int x , int y)

第一个参数和第二个参数取模(x%y),然后对结果执行floor

System.out.println(Math.floorMod( 43,2) );

结果为:1

14. hypot(double x , double y)

返回sqrt( x^ 2 + y^ 2 ),没有中间溢出或下溢。

15. incrementExact(int a )

返回以1递增的参数,如果结果溢出则抛出异常。

16. log(double a)

返回 double值的自然对数(基数 e )。

System.out.println(Math.log( 1.0 ));

结果为:0.0

17. log10(double a)

返回 double值的自然对数(基数 e )。

System.out.println(Math.log10( 10.0 ));

结果为:1.0

18. max(double a , double b)

返回两个 double值中较大的 double

public class Test01 {
    public static void main(String[] args) {
        System.out.println(Math.max( 8,10 ));
    }
}

结果为:10

19. min(double a , double b)

返回两个 double值中较小的 double

20. multiplayExact(int a , int b)

返回两个 int值中较大的 数值 。

21. negateExact(int a)

返回参数的否定,如果结果溢出 int则抛出异常。

System.out.println(Math.negateExact( 10 ));

结果为:-10

22. nextAfter(double start , double direction)

返回第二个参数方向上第一个参数旁边的浮点数。

23. nextDown(double a)

返回负无穷大方向上与 d相邻的浮点值。

System.out.println(Math.nextDown(1.5));

结果为:1.4999999999999998

24. nextUp(double a)

返回正无穷大方向上与 d相邻的浮点值。

System.out.println(Math.nextUp(1.5));

结果为:1.5000000000000002

25. pow(double a , dpuble b)

返回a的b次方.

System.out.println(Math.pow(2,3));

结果为:8.0

26. random(double a , dpuble b)

选取大于等于 0.0 且小于 1.0 的伪随机 double 值

System.out.println(Math.random( ));

结果为:0.06111855492097096

27. round(double a)

返回一个最接近参数的值(四舍五入).

System.out.println(Math.round(8.8));

结果为:9

28. sqrt(double a)

此方法返回一个正平方根。如果参数是NaN或小于为零,那么结果为NaN

System.out.println(Math.sqrt(8.8));
System.out.println(Math.sqrt(-8.8));

结果为:2.9664793948382653 NaN

29. sqrsubtractExact(int x , int y)

返回参数的差异,如果结果溢出 int则抛出异常

System.out.println(Math.subtractExact(8,10));

结果为:-2

30. toRadians(double angle)

将以度为单位测量的角度转换为以弧度测量的近似等效角度。从度到弧度的转换通常是不精确的.

System.out.println(Math.toRadians(45));

结果为:0.7853981633974483