Math类 (常用的总结)
当我们需要进行算术运算时,首先想到的是使用Math类的工具。如果Math类没有我们需要的方法,我们再进行自定义方法。
① 方法 类型名 abs(类型名 a) 都是返回 a 相应类型的绝对值。
② 方法 int/long addExact(int/long a,int/long b) 返回a 与 b的和相应返回类型
eg:使用int类型:
public class MathTest {
public static void main(String[] args) {
int a = -3;
int b = 5;
int c = Math.addExact(a,b);
System.out.println(c);
}
}
运行结果:2
方法 int/long decrementExact(int/long a) 返回参数递减1,如果结果溢出 int则抛出异常。 简单来说就是实现递减1。
方法 incrementExact(int/long a) 返回参数递加1,如果结果溢出 int则抛出异常。
③ 三角函数有关的方法,具体查询API 。具有返回值:acos、asin、atan、atan2、cos、cosh、sin、sinh、tan、tanh
④ 方法 double ceil(double a),返回一个大于或者等于a的数学整数最小值。
方法 double floor (double a),返回一个小于或者等于a的数学整数最大值。
eg:
public class MathTest {
public static void main(String[] args) {
double a = 5.93d;
double b = -5.93d;
double c = Math.ceil(a);
System.out.println(c);
c = Math.ceil(b);
System.out.println(c);
}
}
运行结果:6.0
-5.0
⑤ double/float copySign(double/float magnitude, double/float sign) 返回带有第二个浮点参数符号的第一个浮点参数
eg:
public static void main(String[] args) {
double a = -5.9321;
double b = 5.2182;
double c = Math.copySign(a,b);
System.out.println(c);
}
运行结果:5.9321
⑥ 关于数学e值的方法:double exp(double a) 返回Euler的数字 e ,其值 double值。
double expm1(double x) 返回返回 e x(e的x次方) -1。
double log(double a) 返回 double值的自然对数(基数 e )。double log10(double a) 返回 double值的基数10对数。double log1p(double x) 返回参数和的总和的自然对数。
⑦ 方法 max、min。两个参数。两个参数类型相同,返回两个参数的最大或最小值。
⑧ 方法 类型名 multiplyExact(类型名 x, 类型名 y) 。int、long型。返回两个参数的乘积的值
⑨ 方法 类型名 negateExact(类型名 x) 。int/long型。返回x的相反数。简单来说就是取反
⑩ 方法 double random()。产生一个0(包括)-1(不包括)之间的随机数
①① 方法 double rint(double a) 返回与 double值最接近的 double值,该值等于数学整数。 当a为8.5或者-8.5时,返回的值为8.0 。其实除开这个相当于四舍五入。
①② 方法 long round(double a) 返回与参数最接近的 long ,并将关系四舍五入为正无穷大。 int round(float a) 返回与参数最接近的 int ,并将关系四舍五入为正无穷大。 注意:两个函数的返回值是long、int。
①③ 方法 double sqrt(double a) 返回 double值的正平方根。
①④ 方法 int/long subtractExact(int/long a,int/long b) 返回相对应的值 ,简单来说就是求a-b。