java中的Math类封装的属性和方法
java.lang.Math类拥有基本的数学操作,如指数、对数、平方根和三角函数等等,使用它可以避免程序员自行研发数学方面的代码。此外,java还有一个java.math包,它提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。
本文为大家展示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 } } |
- 赞