Java常用方法整理(3)——Math常用方法

1.随机数

/* Math:用于数学运算的类
 * 成员变量:
 * 		public static final double PI;
 * 		public static final double E;
 * 常用成员方法:
 * 	public static int abs(int a)     绝对值   
	public static double ceil(double a)        向上取整 
	public static double floor(double a)       向下取整
	public static int max(int a,int b)         最大值
	public static int min(int a,int b)         最小值 
	public static double pow(double a,double b)     a的b次幂 
	public static double randow()       随机数[0.0,1.0] 
	public static int round(float a)       四舍五入 
	public static double sqrt(double a)       正平方根 
 * 
 * 以上成员方法有的返回值还有其他类型,但是使用方法是一样的		
 */
public class MathDemo {
	
	//需求:产生1到100的随机数
	public static void main(String[] args) {
		int result = 0;
		result = (int) (Math.random()*100) + 1;
		System.out.println("随机数为:" + result);
	}
}

生成给定范围内的随机数,要求返回值为int类型

import java.util.Scanner;
 
/*需求:设计一个方法,可以实现获取任意范围内的随机数
 * 
 * 分析:
 * (1)键盘录入两个数据 a,b 
 * (2)获取(a,b)间的随机数
 * (3)输出随机数
 * 
 */
 
public class MathDemo2 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int start = 0;
		int end = 0;
		int result = 0 ;
		System.out.println("请输入开始数据:");
		start = sc.nextInt();
		System.out.println("请输入结束数据:");
		end = sc.nextInt();
		
		for(int i = 0; i < 100;i++) {
			result = getRandom(start,end);
			System.out.println(result);
		}
		
	}
 
	public static int getRandom(int start, int end) {
		int rd = 0;
		
		//start不能大于end
		/*if(start >= end) {
			System.out.println("开始数据不能大于结束数据");
			return -1;
		}*/
		
		//类似于生成[1,100]之间的随机数
		//生成[start,end]之间的随机数
		rd = (int)(Math.random()*(end - start + 1)) + start; 
		
		
		return rd;
		
	}
}

2.幂运算

/*

  *幂运算

  *pow(x,y)返回x^y的值

  *exp(x)返回e^x的值

  *expm1(x)返回e^x-1的值

  *所有数据类型都是double型

  */

  System.out.println("2的平方是:"+Math.pow(2.0,2.0));//输出8.0

  System.out.println("2的立方是:"+Math.pow(2.0,3.0));//输出8.0

  System.out.println("e的5次方是:"+Math.exp(5));//输出E^5的值

  System.out.println("e的5次方减1是:"+Math.expm1(5));//输出E^5-1的值

3.开方运算

*开方运算

  *sqrt(x)开平方,cbrt(x)开立方

  *hypot(x,y):等于sqrt(x*x+y*y)。在求两点间距离时有用sqrt((x1-x2)^2+(y1-y2)^2)

  */

  System.out.println("4的平方根开2次方:"+Math.sqrt(4.0));//输出2.0

  System.out.println("8的立方根开3次方:"+Math.cbrt(8.0));//输出2.0

  System.out.println("平方之和开2次方:"+Math.hypot(3.0,4.0));//输出5.0

  /*

4.对数

*对数

  *log(a)a的自然对数(底数是e)

  *log1p(a)a+1的自然对数

  *log10(a)a的底数为10的对数

  *所有数据类型都是double型数据并返回double型数据

  */

  System.out.println("E的自然对数:"+Math.log(Math.E));//输出1.0

  System.out.println("10的以10为底的自然对数:"+Math.log10(10));//输出1.0

  System.out.println("加1后的自然对数:"+Math.log1p(Math.E-1.0));//输出1.0

  /*

5.三角函数与反三角函数

 *三角函数与反三角函数

  *sin()求正弦,cos()求余弦,tan()求正切:参数都是以弧度表示的角

  *asin()求反正弦,acos()求反余弦,atan()求反正切

  *atan2(y,x)求向量(x,y)与x轴夹角

  */

  System.out.println("30°的正弦值:"+Math.sin(Math.PI/6));

  System.out.println("30°的余弦值:"+Math.cos(Math.PI/6));

  System.out.println("30°的正切值:"+Math.tan(Math.PI/6));

  System.out.println("弧度:"+Math.acos(1.0));//输出弧度0...

  System.out.println("弧度:"+Math.acos(-1.0));//输出圆周率3.14...

  System.out.println("夹角:"+Math.atan2(1.0,1.0));//输出π/4的小数值

6.角度和弧度的转换

/*

  *角度和弧度的转换

  *toDegrees(a)弧度转换成角度

  *toRadians(a)角度转换成弧度

  */

  System.out.println("30°对应的的弧度是:"+Math.toRadians(30));

  System.out.println("45°对应的的弧度是:"+Math.toRadians(45));

  System.out.println("π/6对应的的角度是:"+Math.toDegrees(Math.PI/6));

  System.out.println("π/4对应的的角度是:"+Math.toDegrees(Math.PI/4));

  System.out.println("PI对应的的角度是:"+Math.toDegrees(Math.PI));//输出180.0

  System.out.println("180度对应的的弧度是:"+Math.toRadians(180));//输出π的值

7.取整

/*

  *取整

  */

  //ceil(a):向上取整,返回大于a的第一个整数所对应的浮点数(值是整的,类型是浮点型)

  //可以通过强制转换将返回值强转成整型

  System.out.println("向上取整:"+Math.ceil(1.3443));//输出2.0

  System.out.println("向上取整后再截断:"+(int)Math.ceil(1.3443));//输出2

  //floor(a):向下取整,返回小于a的第一个整数所对应的浮点数(值是整的,类型是浮点型)

  System.out.println("向下取整:"+Math.floor(1.3443));//输出1.0

  //rint(a)返回最接近a的整数的double值。如果有两个整数同样接近,就返回偶数的那个

  System.out.println("最接近:"+Math.rint(1.5));//输出2.0。1与2同样接近,选择2

  System.out.println("最接近:"+Math.rint(2.5));//输出2.0。2与3同样接近,选择2

  System.out.println("最接近:"+Math.rint(1.8));//输出2.0

  //round(a)四舍五入.返回四舍五入后的整数值。

  System.out.println("四舍五入:"+Math.round(1.5));//输出2

  System.out.println("四舍五入:"+Math.round(2.5));//输出3

  System.out.println("四舍五入:"+Math.round(1.8));//输出2

8.其他

/*

  *其他

  */

  //copySign(x,y)返回用y的符号取代x的符号后新的x值

  System.out.println("符号拷贝:"+Math.copySign(-1.0,2.0));//输出1.0

  System.out.println("符号拷贝:"+Math.copySign(2.0,-1.0));//输出-2.0

  //nextAfter(a,b)返回(a,b)或(b,a)间与a相邻的浮点数b可以比a小。b是控制条件

  System.out.println("与a相邻的浮点数:"+Math.nextAfter(1.2,2.7));//输出1.2000000000000002

  System.out.println("与a相邻的浮点数:"+Math.nextAfter(1.2,-1));//输出1.1999999999999997

  //nextUp(a)返回比a大一点点的浮点数

  System.out.println("大一点点的浮点数"+Math.nextUp(1.2));//输出1.2000000000000002

  //nextDown(a)返回比a小一点点的浮点数

  System.out.println("小一点点的浮点数"+Math.nextDown(1.2));//输出1.1999999999999997

  }

  }

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值