Math类常用API基础

本文全面解析Java中的Math类,涵盖三角函数、指数、对数、角度转换、比较、四舍五入等数学运算方法,适合Java初学者及开发者快速掌握Math类的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Math类位于java.lang.Math
特点: 1.java.lang包不需要引入,系统会自动调用
2.Math方法都是静态方法 ----可以用Math.的方法直接调用

Math类常用API基础

一.常用常量

Math.PI;//返回值为double
Math.E;//返回值为double

二.三角函数

//60度的正弦 返回double
	System.out.println(Math.sin(Math.PI/3));
//60度的余弦 返回double
	System.out.println(Math.cos(Math.PI/3));
//60度的正切 返回double
	System.out.println(Math.tan(Math.PI/3));
//-1的反正弦函数 返回double
	System.out.println(Math.asin(-1));
//-1的反余弦函数 返回double
	System.out.println(Math.acos(-1));
//-1的反正切函数 返回double
	System.out.println(Math.atan(-1));
//0的双曲正弦 返回double
	System.out.println(Math.sinh(0));
//0的双曲余弦 返回double
	System.out.println(Math.cosh(0));
//0的双曲正切 返回double
	System.out.println(Math.tanh(0));

三.指数函数

//e的n方根 返回double
	System.out.println(Math.exp(2)); //e的平方
	System.out.println(Math.exp(3)); //e的三次方
//返回一个a的b次方 返回double
	System.out.println(Math.pow(3, 4)); //81.0
//返回a的平方根 返回double
	System.out.println(Math.sqrt(4)); //2.0
//返回a的立方根 返回double
	System.out.println(Math.cbrt(8)); //2.0

四.对数函数

//返回以e为底的 double对数值值。  返回double
	System.out.println(Math.log(Math.E*Math.E)); //2.0
//返回一个以10为底的double对数值。  返回double
	System.out.println(Math.log10(100)); //2.0

五.弧度制与角度值的转化

//将以度为单位转换为弧度制的近似等效角度(不准确)返回double
	System.out.println(Math.toRadians(90.0));
//将弧度制转换为以度为单位的近似等效角度(不准确) 返回double
	System.out.println(Math.toDegrees(Math.PI/3));

六.绝对值函数

//-4的绝对值,返回值与输入值的类型相同
	System.out.println(Math.abs(-4));

七.比较函数

//返回两个值中的较大值。 返回值与输入值的类型相同
	System.out.println(Math.max(50, 10.84)); //返回50.0 double
	
//返回两个值中的较小值。 返回值与输入值的类型相同
	System.out.println(Math.max(4.55, 5)); //返回5.0 double
	
/* 返回大于或等于参数的最小的double值。 特殊情况:  
如果参数为NaN或无穷大或正零或负零,则结果与参数相同。 
如果参数值小于零但大于-1.0,则结果为负零  -0.0。 */
	System.out.println(Math.ceil(-4.2)); //-4.0
	System.out.println(Math.ceil(-0.4)); //-0.0
	System.out.println(Math.ceil(+0.0)); //0.0
	System.out.println(Math.ceil(-0.0)); //-0.0
			
/* 返回小于或等于参数的最大double值
如果参数为NaN或无穷大或正零或负零,则结果与参数相同*/
	System.out.println(Math.floor(5.8));//5.0
	System.out.println(Math.floor(-4));//-4.0
	System.out.println(Math.floor(0.0));//0.0
	System.out.println(Math.floor(-0.0));//-0.0

八.两个数相加

//返回其参数的总和,如果结果溢出int(long),则抛出 int(long) 。
	System.out.println(Math.addExact(111111, 55888888));

九.四舍五入函数

Math.round(x)返回值为long!

本质Math.round(x) = (long) Math.floor(x + 0.5F)

	System.out.println(Math.round(15.5)); //16
	System.out.println(Math.round(-15.5));  //-15
	System.out.println(Math.round(-15.51));  //-16
	
	System.out.println(Math.floor(-15.5 + 0.5F)); //-15 >=  -15
	System.out.println(Math.floor(-15.51 + 0.5F)); //-15.01 >= -16
	
	
	double x =9.9984;
	int xx =(int) round(x);
//		int xx = round(x); 报错  因为Math.round()返回值为long型
<think>嗯,用户想了解Java的Math中的常用API。首先,我需要回忆一下Math的基本情况。Math是Java中的一个工具,提供了很多静态方法用于数学运算,比如基本的指数、对数、平方根、三角函数等等。接下来,我得想想常用的方法有哪些,可能需要分门别来介绍,这样用户更容易理解。 首先,绝对值方法abs()应该是比较常用的,处理各种数值型的绝对值。然后是最小值和最大值方法min()和max(),用户可能经常需要比较两个数的大小。接下来是幂运算,比如pow()用于计算幂,exp()计算指数,sqrt()平方根,这些在数学计算中很常见。 三角函数部分,sin(), cos(), tan()这些基本函数,还有他们的反函数asin(), acos(), atan(),可能用户在做几何或图形处理时会用到。对数函数有log()自然对数和log10()以10为底的对数,这也是常用的。 四舍五入方面,round()、ceil()、floor(),这些在处理浮点数时经常需要用到,特别是需要将结果转换为整数的时候。还有随机数方法random(),生成0到1之间的随机数,应用广泛,比如游戏或者随机抽样。 其他数学运算可能包括符号函数signum(),用来判断数值的正负,还有hypot()计算直角三角形的斜边长度,copySign()复制符号位,这些可能在特定场景下有用。 需要检查是否有遗漏的重要方法,比如toRadians()和toDegrees()用于角度和弧度的转换,这在三角函数计算前可能需要转换单位。还有Exact后缀的方法,比如addExact(),用于处理整数溢出,抛出异常,这在需要精确计算的场合很重要。 然后要考虑用户可能的实际应用场景,比如游戏开发、科学计算、数据处理等,不同的场景可能用到不同的方法。同时,用户可能对某些方法的参数型和返回值不太清楚,需要给出示例说明,比如pow()的参数是两个double,返回也是double,避免型错误。 还要注意Math所有方法都是静态的,不需要实例化对象,直接通过名调用,这点需要强调,方便用户正确使用。另外,随机数方法如果需要更复杂的随机数生成,可能需要结合Random,但Math.random()已经能满足基本需求。 最后,组织这些内容时,分点列出,每个方法给出功能说明和示例,结构清晰,用户查阅方便。可能还需要提醒一些常见错误,比如参数型是否正确,返回值范围等。比如ceil()和floor()在处理正负数时的行为差异,或者round()的四舍五入规则。 总结一下,应该按照数学运算的分来组织内容,包括基本运算、三角函数、对数、四舍五入、随机数和其他实用方法,每个别下列举常用方法,给出简要说明和示例代码。这样用户能够快速找到所需的方法,并了解其用法。</think>以下是 Java `Math` 常用API说明及示例: --- ### **一、基本数学运算** 1. **绝对值** `Math.abs(int/long/float/double a)` ```java Math.abs(-5); // 5 Math.abs(-3.14); // 3.14 ``` 2. **最大值与最小值** `Math.max(a, b)` / `Math.min(a, b)` ```java Math.max(10, 20); // 20 Math.min(5.5, 3); // 3.0 ``` 3. **幂运算** - `Math.pow(double base, double exponent)`:计算幂 ```java Math.pow(2, 3); // 8.0 ``` - `Math.exp(double x)`:计算 $e^x$ ```java Math.exp(1); // 2.71828... ``` - `Math.sqrt(double x)`:平方根 ```java Math.sqrt(16); // 4.0 ``` --- ### **二、三角函数** 1. **基础三角函数** - `Math.sin(double radians)` - `Math.cos(double radians)` - `Math.tan(double radians)` ```java Math.sin(Math.PI / 6); // 0.5 ``` 2. **反三角函数** - `Math.asin(double x)` - `Math.acos(double x)` - `Math.atan(double x)` ```java Math.asin(0.5); // π/6 (以弧度表示) ``` 3. **角度与弧度转换** - `Math.toRadians(double degrees)` - `Math.toDegrees(double radians)` --- ### **三、对数函数** - `Math.log(double x)`:自然对数(底为 $e$) ```java Math.log(Math.E); // 1.0 ``` - `Math.log10(double x)`:以 10 为底的对数 ```java Math.log10(100); // 2.0 ``` --- ### **四、四舍五入与取整** 1. **四舍五入** `Math.round(float/double a)` ```java Math.round(3.6); // 4 Math.round(3.4); // 3 ``` 2. **向上/向下取整** - `Math.ceil(double a)`:向上取整 ```java Math.ceil(3.1); // 4.0 ``` - `Math.floor(double a)`:向下取整 ```java Math.floor(3.9); // 3.0 ``` --- ### **五、随机数** - `Math.random()`:生成 [0.0, 1.0) 的随机数 ```java int dice = (int)(Math.random() * 6) + 1; // 模拟骰子(1~6) ``` --- ### **六、其他实用方法** 1. **符号函数** `Math.signum(double x)`:返回数值的符号(-1、0、1) ```java Math.signum(-5.5); // -1.0 ``` 2. **直角三角形的斜边长度** `Math.hypot(double x, double y)` ```java Math.hypot(3, 4); // 5.0(勾股定理) ``` 3. **精确运算(避免溢出)** - `Math.addExact(int a, int b)` - `Math.multiplyExact(int a, int b)` ```java Math.addExact(100, 200); // 300(溢出会抛出异常) ``` --- ### **总结** - `Math` 所有方法均为**静态方法**,直接通过 `Math.方法名()` 调用。 - 更多方法参考官方文档:[Java Math API](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Math.html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值