Java Math类方法学习记录


1 Math 类概述

Math类表示数学类,它位于java.lang包中,由系统默认调用,该类中提供了众多数学函数方法,主要包括三角函数方法,指数函数方法,取整函数方法,取最大值,最小值以及绝对值函数方法,这些方法都被定义为static形式,因此在程序中可以直接通过类名进行调用。使用形式如下:

Math.数学方法

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

Math.PI
Math.E

2 常用的数学运算方式

Math类中常用的数学运算方法较多,大致可以将其分成四大类别:分别是三角函数方法,指数函数方法,取整函数方法以及取最大值、最小值和绝对函数方法,下面分别介绍:

2.1 三角函数方法

方法返回值功能描述
sin(double a)double返回角的三角正弦
cos(double a)double返回角的三角余弦
tan(double a)double返回角的三角正切
asin(double a)double返回一个值的反正弦
acos(double a)double返回一个值的反余弦
atan(double a)double返回一个值的反正切
toRadians(double angdeg)double将角度转换为弧度
toDegrees(double angrad)double将弧度转换为角度

以上的每个方法的参数和返回值都是double型的,将这些方法的参数的值设置为double型是有一定的道理的,参数以弧度代替角度来实现,其中 1° 等于 π/180弧度,所以180°可以用π弧度来表示。除了可以获取角的正弦,余弦,正切。等之外,还提供了角度和弧度互相转化的方法,但是这两种转化通常是不精确的。

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

在这里插入图片描述
因为π本身的结果也是一个近似值,所以这些结果并不能保证十分的准确。

2.2 指数函数方法

方法返回值功能描述
exp(double a)double用于获取e的a次方,既取ea
double log(double a)double用于获取自然对数,既取lna的值
double log10(double a)double用于取底数为10的对数
sqrt(double a)double用于取a的平方根,其中a的值不能为复数
cbrt(double a)double用于取a的立方根
pow(double a,double b)double用于取a的b次方
public class ExponentFunction {
	public static void main(String[] args) {
		System.out.println("e的平方值:" + Math.exp(2)); // 取e的2次方
		// 取以e为底2的对数
		System.out.println("以e为底2的对数值:" + Math.log(2));
		// 取以10为底2的对数
		System.out.println("以10为底2的对数值:" + Math.log10(2));
		System.out.println("4的平方根值:" + Math.sqrt(4)); // 取4的平方根
		System.out.println("8的立方根值:" + Math.cbrt(8)); // 取8的立方根
		System.out.println("2的2次方值:" + Math.pow(2, 2)); // 取2的2次方
	}
}

在这里插入图片描述

2.3 取整数函数方法

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

由于1.5距离2.0和1.0都是0.5个单位长度,因此Math.rint(1.5)返回值是2.0

public class IntFunction {
	public static void main(String[] args) {
		// 返回第一个大于等于参数的整数
		System.out.println("5.2 使用ceil()方法取整:" + Math.ceil(5.2));
		// 返回第一个小于等于参数的整数
		System.out.println("2.5 使用floor()方法取整:" + Math.floor(2.5));
		// 返回与参数最接近的整数
		System.out.println("2.7 使用rint()方法取整:" + Math.rint(2.7));
		// 返回与参数最接近的整数
		System.out.println("2.5 使用rint()方法取整:" + Math.rint(2.5));
		// 将参数加上0.5后返回最接近的整数
		System.out.println("3.4f 使用round()方法取整:" + Math.round(3.4f));
		// 将参数加上0.5后返回最接近的整数,并将结果强制转换为长整型
		System.out.println("2.5 使用round()方法取整:" + Math.round(2.5));
	}
}

在这里插入图片描述

2.4取最大值、最小值、绝对值函数方法

方法返回值功能描述
max(double a,double b)double取a和b之间的最大值
min(int a,int b)int取a和b之间的最小值,参数为整型
min(long a,long b)long取a和b之间的最小值,参数为长整型
min(float a,float b)float取a和b之间的最小值,参数为浮点型
min(double a,double b)double取a和b之间的最小值,参数为双精度型
abs(int a)int返回整型参数的绝对值
abs(long a)long返回长整型参数的绝对值
abs(float a)float返回浮点型参数的绝对值
abs(double a)double返回双精度型参数的绝对值
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)); // 取参数的绝对值
	}
}

在这里插入图片描述

后记

还有一个随机数函数 Math.random(),后面会和Random类做一下比较,并用仿微信抢红包的逻辑来试一下。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值