java数学运算(Math类)

Math类

开发者可以使用+、-、*、/、%等算术运算符完成一些简单的数学运算,但是如果碰到一些复杂的数学运算,该怎么办呢?为了解决这个难题,Java中提供了Math类,Math类中包含许多数学方法,如取最大值、取最小值、取绝对值、三角函数、指函数和取整函数等,除此之外Math类还提供了一些数学常量,如PI、E等。

Math类概述

位于java.long包中的Math类表示数学类,因为Math类中的数学方法都被定义为static形式,所以在程序中可以直接通过Math类的类名调用某个数学方法,语法格式如下 :

Math.数学方法

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

  • Math.PI:表示圆周率PI的值
  • Math.E:表示自然对数e的值

例如,分别输出PI、E的值,代码如下:

public class Dpc {
	public static void main(String[] args) {
		System.out.println("圆周率π的值为:" + Math.PI);
		System.out.println("自然对数底数e值为:" + Math.E);
	}
}

返回结果:

圆周率π的值为:3.141592653589793
自然对数底数e值为:2.718281828459045

常用数学运算方法

Math类中的数学方法较多,如数学方法,如取最大值、取最小值、取绝对值、三角函数、指函数和取整函数等,Math类部分数学方法如下图:

指数函数方法

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

方法返回值功能描述
exp(double a)double用于获取e的a次方
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次方

指数运算包括求方根、取对数和求n次方,下面举例说明如何使用Math类实现指数运算,代码如下:

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

返回结果:

取整函数方法

在生活中,尤其在商品买卖的过程中,取整操作很常见。为了更好地解决生活中的问题,Java在Math类中添加了取整方法,Math类中的取整方法如下表:

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

在数轴上显示使用floor(1.5)、ceil(1.5)和rint(1.5)这三个取整方法后的返回值,部分取整方法的返回值

注意:由于数1.0和数2.0距离数1.5都是0.5个单位长度,因此Math.rint返回偶数2.0

下面举例说明如何使用Math类的取整方法,代码如下:

public class Dpc {
	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("使用rint()方法取整:" + Math.rint(2.5));
		// 将参数加上0.5后返回最接近的整数
		System.out.println("使用round()方法取整:" + Math.round(3.4f));
		// 将参数加上0.5后返回最接近的整数,并将结果强制转换为长整型
		System.out.println("使用round()方法取整:" + Math.round(2.5));
	}
}

返回结果:

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

Math类中还有一些操作数据的方法,如取最大值、最小值、绝对值等。Math类中取最大值、最小值、绝对值的方法如下表:

方法返回值功能描述
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返回双精度参数的绝对值

下面举例说明如何使用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)); // 取参数的绝对值
	}
}

返回结果:

 

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值