0
点赞
收藏
分享

微信扫一扫

【Java常用类】Math类

上善若水的道 2022-03-11 阅读 147

java.lang.Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。

常用方法

abs(...):绝对值,返回传入值的绝对值。

pow(double a, double b):求幂,返回a的b次方。

ceil(double a):向上取整,返回大于等于参数的最小的整数。

floor(double a):向下取整,返回小于等于参数的最大的整数。

round(...):四舍五入,返回最接近参数的整数。(相当于四舍五入方法)。

sqrt(double a):求开方,返回double类型的四舍五入后的平方根。

random():求随机数,返回一个0.0-1.0的随机数。大于等于0而小于1。

max(...):求两个数的最大值,返回传入两个参数最大的那个。
min(...):求两个数的最小值,返回传入两个参数最小的那个。

方法案例

求随机数

需求: 使用random()方法获取一个2-7之间的一个随机整数,包含2和7。

① 正常来说,如果我们想要0-9之间的一个随机整数,会把random的返回值直接乘以10,再强转为int类型。
② 那如果想要1-10,只需要将①的结果加1即可,类推可以发现我们的需求可以拆分成:获取一个0-5之间的整数,然后再加2,得到的就是2-7之间的整数。
③ 那如何获取0-5之间的整数呢?这里是包含5的,但是random方法的结果是0 <= x < 1的小数,包含0,不包含1。所以实际上我们需要获取的是0 <= x < 6的整数。
0 <= x < 1的小数,乘以10,得到的就是0 <= x < 10的值;乘以9,0 <= x < 9的值;以此类推,这里可以拿random方法的返回值乘以6,得到的就是0 <= x < 6的值。
⑤ 将该值加2,并强转为int类型的数值,即可。
⑥ 由此可以得到一个公式:
(int) (Math.random() * (b - a + 1) + a)
⑦ 把2带入a,7带入b,可以得到:
(int) (Math.random() * (7 - 2 + 1) + 2)
(int) (Math.random() * 6 + 2)

public static void main(String[] args) {
	int a = 2;
	int b = 7;
	int res = (int) (Math.random() * (b - a + 1) + a);
	System.out.println("2-7之间的随机数为:" + res);
}
举报

相关推荐

0 条评论