JavaEE培训

您当前的位置:首页 > Java培训 > JAVA开发 >

Java中math类的常用方法

来源:Java中math类详解 2018-01-16

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

Java中的math类

本文为大家展示Math类的常用方法。Math类属于包java.lang,因此使用它时无需用import导入。Math类封装的属性和方法大致如下:

public class Main {

public static void main(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

}

}

400-611-6270

Copyright ©2004-2024 华清远见 版权所有
京ICP备16055225号,京公海网安备11010802025203号