Java中math类的常用方法
发布于:2019-06-21   作者:admin   浏览:2482次

  java.lang.Math类拥有基本的数学操作,如指数、对数、平方根和三角函数等等,使用它可以避免程序员自行研发数学方面的代码。此外,java还有一个java.math包,它提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。java培训机构的小编就来为你介绍一下吧。

Java中math类的常用方法

  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

  }

  }