初识Java(Java数字处理类-数学运算)

一、数学运算

    在 Java 语言中提供了一个执行数学基本运算的 Math 类,该类包括常用的数学运算方法,如三角函数方法、指数函数方法、对数函数方法、平方根函数方法等一些常用数学函数,除此之外还提供了一些常用的数学常量,如 PI 、 E 等。

    1.1  Math 类

    在 Math 类中提供了众多数学函数方法,主要包括三角函数方法、指数函数方法、取整函数方法、取最大值、最小值以及平均值函数方法,这些方法都被定义为 static 形式,所以在程序中应用比较简便。

    可以使用如下形式调用 :

Math.数学方法

    在 Math 类中除了函数方法之外还存在一些常用数学常量,如 PI 、 E 等。这些数学常量作为 Math 类的成员变量出现,调用起来也很简单。

    可以使用如下形式调用 :

Math.PI
Math.E

    1.2 常用数学运算方法

    在 Math 类中的常用数学运算方法较多,大致可以将其分为 4 大类别,分别为三角函数方法、指数函数方法、取整函数方法以及取最大值、最小值和绝对值函数方法。

    ( 1 ) 三角函数方法

      在 Math 类中包含的三角函数方法如下 :

public static double sin(double a) :                 返回角的三角正弦
public static double cos(double a) :                 返回角的三角余弦
public static double tan(double a) :                 返回角的三角正切
public static double asin(double a) :                返回一个值的反正弦
public static double acos(double a) :                返回一个值的反余弦
public static double atan(double a) :                返回一个值的反正切
public static double toRadians(double angdeg) :      将角度转换为弧度
public static double toDegrees(double anggrad) :     将弧度转换为角度

    以上每个方法的参数和返回值都是 double  型的。将这些方法的参数的值设置为 double 型是有一定但离得,参数以弧度代替角度来实现,其中 1° 等于 π/180 弧度,所以 180° 可以使用 π 弧度来表示。除了可以获取角的正弦、余弦、正切、反正弦、反余弦、反正切之外, Math 类还提供了角度和弧度相互转换的方法 toRadians() 和 toDegrees() 。但需要注意的是,角度和弧度的转换通常是不精确的。

    eg : 创建类,在类的主方法中调用 Math 类提供的各种三角函数运算方法,并输出运算结果。

public class TrigonometricFunction {
    public static void main(String[] args) {
        System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));
        System.out.println("0 度的余弦值:" + Math.cos(0));
        System.out.println("60 度的正切值:" + Math.tan(Math.PI/3));
        System.out.println("2 的平方根与 2 商的反正弦值:" + Math.asin(Math.sqrt(2)/2));
        System.out.println("2 的平方根与 2 商的反余弦值:" + Math.acos(Math.sqrt(2)/2));
        System.out.println("1 的反正切值:" + Math.atan(1));
        System.out.println("120 度的弧度值:" + Math.toRadians(120.0));
        System.out.println("π/2 的角度值:" + Math.toDegrees(Math.PI/2));
    }
}

    运行结果为 :

2 的平方根与 2 商的反正弦值:0.7853981633974484
2 的平方根与 2 商的反余弦值:0.7853981633974483
1 的反正切值:0.7853981633974483
120 度的弧度值:2.0943951023931953
π/2 的角度值:90.0

    通过运行结果可以看出, 90°  的正弦值为 1 , 0°  的余弦值为 1 ,60° 的正切与 Math.sqrt(3) 的值应该是一直的,也就是取 3 的平方根。

    ( 2 ) 指数函数方法

    Math 类中与指数相关的函数方法如下 :

public static double exp(double a) :                 用于获取 e 的 a 次方 
public static double log(double a) :                 用于取自然对数 , 即取 lna 的值 
public static double log10(double a) :               用于取底数为 10 的对数
public static double sqrt(double a) :                用于取 a 的平方根 , 其中 a 的值不能为负值
public static double cbrt(double a) :                用于取 a 的立方根
public static double pow(double a , double b) :      用于取 a 的 b 次方

    指数运算包括求方根、取对数以及求 n 次方的运算。

    eg : 创建类,在类的主方法中调用 Math 类中的方法实现指数函数的运算,并输出运算结果。

public class ExponentFunction {
    public static void main(String[] args) {
        System.out.println("e 的平方值:" + Math.exp(2));	
        System.out.println("以 e 为底 2  的对数值:" + Math.log(2));	
        System.out.println("以 10 为底 2  的对数值:" + Math.log10(2));	
        System.out.println("4 的平方根值:" + Math.sqrt(2));	
        System.out.println("8 的立平方根值:" + Math.cbrt(2));	
        System.out.println("2 的 2 次方值:" + Math.pow(2, 2));	
    }
}

    运行结果为 :

以 e 为底 2  的对数值:0.6931471805599453
以 10 为底 2  的对数值:0.3010299956639812
4 的平方根值:1.4142135623730951
8 的立平方根值:1.2599210498948732
2 的 2 次方值:4.0

    1.3  取整函数方法

    Math 类中主要包括以下几种取整方法 :

public static double ceil(double a) :                返回大于等于参数的最小整数
public static double floor(double a) :               返回小于等于参数的最大整数
public static double rint(double a) :                返回与参数最接近的整数,如果两个同为整数且同样接近,则结果取偶数
public static int round(float a) :                   将参数加上 0.5 后返回与参数最近的整数
public static long round(double a) :                 将参数加上 0.5 后返回与参数最近的整数,然后强制转换为长整型

    eg : 创建类,在类的主方法中调用 Math 类中的方法实现取整函数的运算,并输出运算结果。

public class IntFunction {
public static void main(String[] args) {
System.out.println("使用 ceil() 方法取整:" + Math.ceil(5.2));
System.out.println("使用 floor() 方法取整:" + Math.floor(2.5));
System.out.println("使用 rint() 方法取整:" + Math.rint(2.7));
System.out.println("使用 int round() 方法取整:" + Math.round(3.4f));
System.out.println("使用 long round() 方法取整:" + Math.round(2.5));
}
}

    运行结果为 :

使用 ceil() 方法取整:6.0
使用 floor() 方法取整:2.0
使用 rint() 方法取整:3.0
使用 int round() 方法取整:3
使用 long round() 方法取整:3

    1.4  取最大值、最小值、绝对值行数方法

    在程序中最常用的方法就是取最大值、最小值、绝对值等,操作方法如下 :

public static double max(double a ,double b) :       取 a 与 b 之间的最大值
public static int min(int a ,int b) :                取 a 与 b 之间的最小值,参数为整形
public static long min(long a ,long b) :             取 a 与 b 之间的最小值,参数为长整型
public static float min(float a ,float b) :          取 a 与 b 之间的最小值,参数为浮点型
public static double min(double a ,double b) :       取 a 与 b 之间的最小值,参数为双精度型
public static int abs(int a) :                       返回整形参数的绝对值
public static long abs(long a) :                     返回长整型参数的绝对值
public static float abs(float a) :                   返回浮点型参数的绝对值
public static double abs(double a) :                 返回双精度型参数的绝对值

    eg : 创建类,在类的主方法中调用 Math 类中的方法实现求两束的最大值、最小值和取绝对值运算,并输出运算结果。

public class AnyFunction {
    public static void main(String[] args) {
        System.out.println("4 和 8 较大者:" + Math.max(4, 8));
        System.out.println("4.4 和 4 较小者:" + Math.min(4.4, 4));
        System.out.println("-7 的绝对值:" + Math.abs(-7));
    }
}

    运行结果为 :

4 和 8 较大者:8
4.4 和 4 较小者:4.0
-7 的绝对值:7


    



你可能感兴趣的:(Java)