Math
Math类就是用来进行数学计算的,它提供了大量的静态方法来便于我们实现数学计算。
求绝对值
Math.abs(-100); // 100
Math.abs(-7.8); // 7.8
取最大或最小值
Math.max(100, 99); // 100
Math.min(1.2, 2.3); // 1.2
计算xy次方
Math.pow(2, 10); // 2的10次方=1024.0,有小数位是因为该函数返回结果为double型
计算√x
Math.sqrt(2); // 1.4142135623730951
Math.sqrt(16); // 4.0,有小数位是因为该函数返回结果为double型
生成随机数
Math.random()
生成 [0, 1)
范围内的double类型随机数。借助它可以生成一个区间在 [MIN, MAX)
的随机数,如下生成一个[10,50)
的数 和 [10,50)
的整数。
public static void main(String[] args) {
double x = Math.random(); // x的范围是[0,1)
double min = 10;
double max = 50;
double y = x * (max - min) + min; // y的范围是[10,50)
long n = (long) y; // n的范围是[10,50)的整数
System.out.println(y); // 38.86572600443872
System.out.println(n); // 38
}
Math.random()
实际上内部调用了Random
类,这是一个专门用于产生随机数的类。
Java标准库还提供了一个StrictMath,它提供了和Math几乎一模一样的方法。这两个类的区别在于,由于浮点数计算存在误差,不同的平台(例如x86和ARM)计算的结果可能不一致(指误差不同),因此,StrictMath保证所有平台计算结果都是完全相同的,而Math会尽量针对平台优化计算速度,所以,绝大多数情况下,使用Math就足够了。
他の者にできたか?ここまでやれたか?この先できるか?いいや、仆にしかできない!