javaAPI学习之Math类

一.了解Math类

1.Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。
2.Math类中的所有方法都为静态方法。(这意味着我们可以直接通过类名调用)

二.学习其中的方法

1. abs()方法
描述:返回参数值的绝对值。
支持的数据类型 :int ,long ,float ,double

使用案例:

public class math {
    public static void main(String[] args) {
        int x=20;
        double y=20.5;
        System.out.println(Math.abs(x));
        System.out.println(Math.abs(y));
    }
}

2.acos()方法
描述:返回参数值的反余弦值。
支持的数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
        double y=1/3;
        System.out.println(Math.acos(y));
    }
}

类似的还有:
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)
返回从直角坐标(转换角度 theta x , y )为极坐标 (R,θ-)。

static double cos(double a)
返回角度的三角余弦。

static double cosh(double x)
返回的双曲余弦 double值。

static double sin(double a)
返回角度的三角正弦。

static double sinh(double x)
返回的双曲正弦 double值。

static double tan(double a)
返回角度的三角正切。

static double tanh(double x)
返回的双曲正切 double值。

3. addExact()方法
描述:返回其参数的总和,如果结果溢出则抛出错误。
支持的数据类型:int ,long

使用案例:

public class math {
    public static void main(String[] args) {
       int x=111111111;
       int y=1111111111;
       System.out.println(Math.addExact(x,y));
    }
}

4. cbrt()方法
描述:返回参数值的立方根
支持的数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
      double a=8;
      System.out.println(Math.cbrt(a));//输出2
    }
}

5. ceil();方法
描述:返回大于或等于参数的最小(最接近负无穷大) double值,等于一个数学整数。
支持的数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
      double a=8.5;
      System.out.println(Math.ceil(a));//输出9.0
    }
}

6.copySign()方法
描述:使用第二个浮点参数的符号返回第一个浮点参数。
支持的数据类型:double,float

使用案例:

public class math {
    public static void main(String[] args) {
      double a=8.5;
      double b=-9;
       System.out.println(Math.copySign(a,b));//输出-8.5
    }
}

7. decrementExact()
描述:返回一个递减1的参数,如果结果溢出则抛出。
支持数据类型:int , long

使用案例:

public class math {
    public static void main(String[] args) {
     int a=8;
     System.out.println(Math.decrementExact(a));//输出7
    }
}

8. exp()方法
描述:返回欧拉的数字 e的参数次方的值。(e^x)
支持的数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
     double a=2;
     System.out.println(Math.exp(a));//输出e^2的double值
    }
}

9. expm1()方法
描述:返回 e^x -1。
支持数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
     double a=3;
     System.out.println(Math.expm1(a));
    }
}

10.floor()方法
描述:返回小于或等于参数的最大(最接近正无穷大) double值,等于一个数学整数。
支持数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
     double a=2.9;
     System.out.println(Math.floor(a));//输出2.0
    }
}

11.floorDiv()方法
描述:返回小于或等于参数商的最大(最接近正无穷大)值。
支持数据类型:int , long

使用案例:

public class math {
    public static void main(String[] args) {
     int a=9;
     int b=4;
     System.out.println(Math.floorDiv(a,b));//输出2
    }
}

12.floorMod()方法
描述:返回 参数的余数。
支持数据类型:int, long

使用案例:

public class math {
    public static void main(String[] args) {
     int a=32;
     int b=11;
     System.out.println(Math.floorMod(a,b));//输出10
    }
}

13.getExponent(double d)方法
描述:返回参数的无偏指数
支持数据类型:int
目前尚未弄清它的用法,如果有知道的欢迎私信我。

14.hypot(double x, double y)方法
描述:返回sqrt( x^2 + y^2 ),没有中间溢出或下溢。
支持的数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
        double a=3;
        double b=4;
     System.out.println(Math.hypot(a,b));//输出5.0
    }
}

15.IEEEremainder(double f1, double f2)方法
描述:根据IEEE 754标准计算两个参数的余数运算。
支持数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {

        double a=4;
        double b=3;
     System.out.println(Math.IEEEremainder(a,b));//输出1.0
    }
}

16.incrementExact(int a)方法
描述:返回参数加1后的值,溢出报错
支持数据类型:int,long

使用案例:

public class math {
    public static void main(String[] args) {

        double a=4;
        int b=3;
     System.out.println(Math.incrementExact(b));//输出4
    }
}

17.static double log(double a)方法
描述:返回的自然对数(以 e为底) 的double类型的值。
支持数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
        double b=3;
     System.out.println(Math.log(b));//输出1.0986122886681098
    }
}

18.static double log10(double a)方法
描述:返回一个 double的基数10对数值。
支持数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
        double b=10;
     System.out.println(Math.log10(b));//输出1.0
    }
}

19.static double log1p(double x)方法
描述:返回参数和1的和的自然对数。
支持数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
        double b=2;
     System.out.println(Math.log1p(b));//输出1.0986122886681096
    }
}

20. max()方法
描述:返回两个值中的较大值。
支持数据类型:double, float,int ,long

使用案例:

public class math {
    public static void main(String[] args) {
        double a=7;
        double b=2;
        System.out.println(Math.max(a,b));//输出7.0
        int a1=3;
        int b1=9;
        System.out.println(Math.max(a1,b1));//输出9
    }
}

21. min(double a, double b)方法
描述:返回两个值的较小值。
支持的数据类型:double ,float, int ,long

使用案例:

public class math {
    public static void main(String[] args) {
        double a=7;
        double b=2;
        System.out.println(Math.min(a,b));//输出2.0
        int a1=3;
        int b1=9;
        System.out.println(Math.min(a1,b1));//输出3
    }
}

22.multiplyExact()方法
描述:返回参数的乘积,如果结果溢出int,则抛出 int 。
支持数据类型:int, long

使用案例:

public class math {
    public static void main(String[] args) {
        int a1=3;
        int b1=9;
        System.out.println(Math.multiplyExact(a1,b1));//输出27
    }
}

23.negateExact()方法
描述:返回参数的负数,如果结果溢出报错。
支持数据类型:int ,long

使用案例:

public class math {
    public static void main(String[] args) {
        int a1=3;
        System.out.println(Math.negateExact(a1));//输出-3
    }
}

24.nextAfter()方法
描述:返回与第二个参数方向相邻的第一个参数的浮点数。
支持数据类型:double , float

使用案例:

public class math {
public class math {
    public static void main(String[] args) {

        double a1=3;
        double b1=4;
        double c1=2;
        System.out.println(Math.nextAfter(a1,b1));//输出3.0000000000000004
        System.out.println(Math.nextAfter(a1,c1));//输出2.9999999999999996
    }
}

25.nextDown()方法
描述:返回与负无穷大方向相邻的参数的浮点值。
支持数据类型:double ,float

使用案例:

public class math {
    public static void main(String[] args) {

        double a1=3;
        System.out.println(Math.nextDown(a1));//输出2.9999999999999996
    }
}

26.nextUp()方法
描述:返回与正无穷大方向相邻的参数的浮点值。
支持的数据类型:double , float

使用案例:

public class math {
    public static void main(String[] args) {

        double a1=3;
        System.out.println(Math.nextUp(a1));//输出3.0000000000000004
    }
}

27.static double pow(double a, double b)方法
描述:返回值a^b
支持数据类型:double

使用案例:

public class math {
    public static void main(String[] args) {
        double a1=3;
        double b1=4;
        System.out.println(Math.pow(a1,b1));//输出81.0
    }
}

28.static double random()
描述:返回值为随机值值为正号,大于等于 0.0 ,小于 1.0 。

使用案例:

public class math {
    public static void main(String[] args) {
        System.out.println(Math.random());
    }
}

29.static double rint(double a)
描述:返回与参数最接近值的 double值,并且等于数学整数。

使用案例:

public class math {
    public static void main(String[] args) {

        double a1=3.6;      
        System.out.println(Math.rint(a1));//输出4.0
    }
}

30.static long round(double a)
描述:返回参数中最接近的 long值 ,其中 long四舍五入为正无穷大。
使用案例:

public class math {
    public static void main(String[] args) {
        double a1=3.6;
        System.out.println(Math.round(a1));//输出4
    }
}

static int round(float a)
描述:返回参数中最接近的 int值 ,其中 int四舍五入为正无穷大。
使用案例:

public class math {
    public static void main(String[] args) {
        float a=2.3f;
        System.out.println(Math.round(a));//输出2
    }
}

31.static double scalb(double d, int scaleFactor)
描述:方法返回 d × 2^scaleFactor

使用案例:

public class math {
    public static void main(String[] args) {
        double a=10;
        int b=3;
        System.out.println(Math.scalb(a,b));//输出80.0
    }
}

32.static double signum(double d)
描述:返回参数的signum函数; 如果参数为零,则为零,如果参数大于零则为1.0,如果参数小于零,则为-1.0。
支持的数据类型:double float

33.static double sqrt(double a)
描述:返回的正确舍入正平方根值。
使用案例:

public class math {
    public static void main(String[] args) {
        double a=9; 
        System.out.println(Math.sqrt(a));//输出3.0
    }
}

34.subtractExact()
描述:返回参数的差,如果结果溢出抛出错误。
支持的数据类型:int,long

使用案例:

public class math {
    public static void main(String[] args) {
        int a=5;
        int b=3;
        System.out.println(Math.subtractExact(b,a));//b-a输出-2
    }
}

35.static double toDegrees(double angrad)
描述:将以弧度测量的角度转换为以度为单位的近似等效角度。

static int toIntExact(long value)
描述:返回long参数的值; 如果值溢出抛出。

36.static double toRadians(double angdeg)
描述:将以度为单位的角度转换为以弧度测量的大致相等的角度。

37.ulp()
描述:返回参数的ulp的大小。
支持的数据类型:double , float

下面解释是转载自:https://blog.csdn.net/lantianjialiang/article/details/43985303?utm_source=blogkpcl9

如果要理解什么是ulp(unit in the last place or unit of least precision (ULP)),先要了解在计算机中保存的数和我们在数学上认为的数是不一样的;
比方说2.0和3.0之间有多少个数,在数学中是无限的,但是在计算机中是有限的,因为计算机需要用一堆字节来表示double或者float,但是因为计算机表示不了无限的数(因为没有无限内存)。

所以就有了ulp,假设在float 2.0和3.0之间有8,388,609个数,那么在2.0和3.0之间的数的ulp就是8,388,609/1.0约等于0.0000001。

你如果想知道某一个具体的double或float的先一个或者上一个数字是什么可以使用函数
public static double nextAfter(float start, float direction)
public static double nextAfter(double start, double direction)

http://www.ibm.com/developerworks/library/j-math2/

猜你喜欢

转载自blog.csdn.net/c1776167012/article/details/106613043