java.lang.Math类拥有基本的数学操作,如指数、对数、平方根和三角函数等等,使用它可以避免程序员自行研发数学方面的代码。此外,java还有一个java.math包,它提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。java培训机构的小编就来为你介绍一下吧。
Java中的math类
本文为大家展示Math类的常用方法。Math类属于包java.lang,因此使用它时无需用import导入。Math类封装的属性和方法大致如下:
publicclassMain{
publicstaticvoidmain(String[]args){
//两个静态成员变量
System.out.println("自然对数的底数E是:"+Math.E);//数学中的E(即自然对数的底数)。
System.out.println("圆周率是:"+Math.PI);//数学中的圆周率。
//函数罗列于下
/*
*1.求绝对值abs()
*/
System.out.println("绝对值是:"+Math.abs(-5.4));//输出5.4
/*
*2.求最值
*max(a,b)求最大值
*min(a,b)求最小值
*/
System.out.println("最大值是:"+Math.max(1,2));//输出2
System.out.println("最小值是:"+Math.min(1.9,-0.2));//输出-0.2
/*
*3.求随机数random()返回[0.0,1.0)之间的double值。可进一步通过*x控制取值界限,见示例。
*/
//输出[0,100)之间的随机整数
System.out.println("1~100间的随机数:"+(int)(Math.random()*100));
////////////Exponential:幂、开方、对数等运算
/*
*4.幂运算
*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的值
/*
*5.开方运算
*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
/*
*6.对数
*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
/*
*7.三角函数与反三角函数
*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的小数值
/*
*8.角度和弧度的转换
*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));//输出π的值
/*
*9.取整
*/
//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
/*
*10.其他
*/
//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
}
}