Logo

郎哥编程

Math类

2019-12-15 989

Math类包含在Java.lang包下,用于执行基本的数学运算。如三角函数、指数函数、对数函数、求平方根函数等数学函数,这些运算都是以类的静态方法来提供的,因此调用这些方法无需实例化Math对象。

Math类也定义了了在数学运算中经常使用的常数,例如圆周率、自然常数。

Math类的常量:

E:底数,是所有自然数的底数。

PI :π,圆周率

访问Math类常量的代码如下:

public static void main(String[] args) {
  System.out.println("PI=" + Math.PI);
   System.out.println("E=" + Math.E);
}

执行结果如下图所示:

image.png

Math类的三角函数方法

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

(1)static double sin(double a)

返回角的三角正弦。

(2)static double cos(double a)

返回角的三角余弦。

(3)static double tan(double a)

返回角的三角正切。

(4)static double asin(double a)

返回值的弧正弦;返回的角度在-pi/2到pi/2的范围内。

(5)static double acos(double a)

返回值的弧余弦;返回的角度在0.0到pi的范围内。

(6)static double atan(double a)

返回值的反正切;返回的角度在-pi/2到pi/2的范围内。

(7)static double toRadians(double angdeg)

将以角度测量的角度转换成弧度测量的近似等效角度。

(8)static double toDegrees(double angrad)

将弧度测量的角度转换成以度数测量的近似等效角。

案例1:实现三角函数运算。

在PBaseUnit16项目unit包下创建Java类AngleSample。代码如下:

/** 
* @Title: AngleSample.java 
* @Package unit 
* @Description: Java基础知识课程案例
* @author 编程训练营 
* @date  
* @version V1.0 
*/ 
 
package unit;
 
/** 
* @ClassName: AngleSample 
* @Description: 数值处理与运算(Math类)案例1
* @author 编程训练营 
* @date 
* 
*/
 
public class AngleSample {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法 
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       /**
        *   计算45度角的正弦值
       *  sin方法的参数类型是弧度,需要把角度转换为弧度
       *  toRadians方法可以把弧度转换为角度
       */
       System.out.println("45度角的正弦值为:" + Math.sin(Math.toRadians(45)));
       // 计算60度角的余弦值
       System.out.println("60度角的余弦值为:" + Math.cos(Math.toRadians(60)));
       // 计算30度角的正切值
       System.out.println("30度角的正切值为:" + Math.tan(Math.toRadians(30)));
 
       /**
        *   计算45度角的反正弦
       *  asin方法的参数类型是弧度,需要把角度转换为弧度
       *  asin返回的数值为弧度
       */
       System.out.println("45度角的反正弦:" + Math.asin(Math.toRadians(45)));
       // 计算30度角的反余弦
       System.out.println("60度角的反余弦:" + Math.acos(Math.toRadians(30)));
    }
 
}

程序结构分析

Math类提供的三角函数方法都是静态方法,可以直接使用Math类名来调用方法。方法传入的参数类型是弧度,如果需要传入角度,可以使用Math类的toRadians()方法将角度转换为弧度。

程序执行结果如下图所示:

image.png

Math类的指数函数方法

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

(1)static double exp(double a)

返回自然常数(e)的a次方。

(2)static double log(double a)

返回以自然常数(e)为底的自然对数。

(3)static double log10(double a)

返回底数为10的对数。

(4)static double sqrt(double a)

返回a的平方根,a不能为负值。

(5)static double cbrt(double a)

返回a的立方根。

(6)static double pow(double a,double b)

返回a的b次方。

案例2:实现指数函数运算。

在PBaseUnit16项目unit包下创建Java类ExpSample。代码如下:

/** 
* @Title: ExpSample.java 
* @Package unit 
* @Description: Java基础知识课程案例
* @author 编程训练营 
* @date 
* @version V1.0 
*/ 
 
package unit;
 
/** 
* @ClassName: ExpSample 
* @Description: 数值处理与运算(Math类)案例2
* @author 编程训练营 
* @date  
* 
*/
 
public class ExpSample {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法 
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       // 计算自然常数(e)的3次方
       System.out.println("自然常数(e)的3次方为:" + Math.exp(3));
       // 计算自然常数(e)的2的对数
       System.out.println("自然常数(e)2的对数为:" + Math.log(2));
       // 计算底数为10的2的对数
       System.out.println("底数为10,2的对数为:" + Math.log10(2));
       // 计算2的平方根
       System.out.println("2的平方根为:" + Math.sqrt(2));
       // 计算2的立方根
        System.out.println("2的立方根为:" + Math.cbrt(2));
       // 计算2的3次方
        System.out.println("2的3次方为:" + Math.pow(2,3));
      
    }
 
}

程序执行结果如下图所示:

image.png

Math类的取整运算方法

在Math类中包含的取整运算方法如下:

(1)static double ceil(double a)

对参数a向上取整并返回。

(2)static double floor(double a)

对参数a向下取整并返回。

(3)static double rint(double a)

返回最接近参数的整数,如果有2个数同样接近,则会返回偶数的那个。

(4)static long round(double a)

返回最接近于参数的整数(四舍五入)。

案例3:实现取整运算。

在PBaseUnit16项目unit包下创建Java类TruncSample。代码如下:

/** 
* @Title: TruncSample.java 
* @Package unit 
* @Description:Java基础知识课程案例
* @author 编程训练营 
* @date 
* @version V1.0 
*/ 
 
package unit;
 
/** 
* @ClassName: TruncSample 
* @Description: 数值处理与运算(Math类)案例3
* @author 编程训练营 
* @date  
* 
*/
 
public class TruncSample {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法 
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       // 向上取整
       System.out.println("21.68向上取整:" + Math.ceil(21.68));
       // 向下取整
       System.out.println("21.68向小取整:" + Math.floor(21.68));
       // rint方法取整
       System.out.println("使用rint方法取整21.68:" + Math.rint(21.68));
    }
 
}

程序执行结果如下图所示:

image.png 

Math类的取最大值、最小值和绝对值方法

(1)static double max(double a, double b)

返回a与b之间的最大值。

(2)static int min(int a, int b)

返回a与b之间的最小值,参数类型为int。

(3)static double min(double a, double b)

返回a与b之间的最小值,参数类型为double。

(4)static long min(long a, long b)

返回a与b之间的最小值,参数类型为long。

(5)static int abs(int a)

返回a的绝对值,返货类型为int。

(6)static long abs(long a)

返回a的绝对值,返回类型为long。

(7)static double abs(double a)

返回a的绝对值,返回类型为double。

案例4:实现取最大值、最小值和绝对值运算。

在PBaseUnit16项目unit包下创建Java类MaxSample。代码如下:

/** 
* @Title: MaxSample.java 
* @Package unit 
* @Description: Java基础知识课程案例 
* @author 编程训练营 
* @date  
* @version V1.0 
*/ 
 
package unit;
 
/** 
* @ClassName: MaxSample 
* @Description: 数值处理与运算(Math类)案例4
* @author 编程训练营 
* @date 
* 
*/
 
public class MaxSample {
 
    /** 
    * @Title: main 
    * @Description: Java程序入口main方法  
    * @param @param args    参数 
   
    * @return void    返回类型 
    * @throws 
    */
 
    public static void main(String[] args) {
       // 取最大值
       System.out.println("20和50的最大值为:" + Math.max(20,50));
       // 取最小值
       System.out.println("20和50的最小值为:" + Math.min(20,50));
       // 取绝对值
       System.out.println("-50的绝对值为:" + Math.abs(-50));
 
    }
 
}

程序执行结果如下图所示:

image.png


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论