Skip to content

Math 方法


常用方法

第一组:常用的

方法名描述
Math.abs()返回参数的绝对值
Math.ceil()返回大于或等于参数的最小整数(向上取整
Math.floor()返回小于或等于参数的最大整数(向下取整
Math.max()返回两个参数中较大的值
Math.min()返回两个参数中较小的值
Math.pow(数,开方次数)返回第一个参数的第二个参数次方
Math.random()返回一个范围在 0 ≤ x < 1 之间的随机数左闭右开
Math.sqrt()返回参数的平方根
Math.round()返回最接近参数的整数四舍五入存在精度缺失问题

第二组:数学相关

方法名描述
三角函数全部要求传入弧度参数
Math.sin()返回参数的正弦值
Math.cos()返回参数的余弦值
Math.tan()返回参数的正切值
Math.asin()返回参数值的反正弦值(弧度)
Math.acos()返回参数值的反余弦值(弧度)
Math.atan()返回参数值的反正切值(弧度)
Math.sinh()返回参数的双曲正弦值
Math.cosh()返回参数的双曲余弦值
Math.tanh()返回参数的双曲正切值
指数和对数
Math.exp()返回参数值的指数值
Math.expm1()返回 e 的 x 次方减去 1 的结果
Math.log()返回参数的自然对数
Math.log10()返回参数的以 10 为底的对数
如果要计算其他数为底的对数,需要以 log10 为基准,使用换地公式解决
角度与弧度
Math.toDegrees()将弧度转换为角度
Math.toRadians()将角度转换为弧度

⭐ 指定保留小数位数

java
import java.text.DecimalFormat;

class Solution {
    public double[] convertTemperature(double celsius) {
        double kelvin = celsius + 273.15;
        double fahrenheit = celsius * 1.80 + 32.00;

        // 如果需要固定5位小数输出
        DecimalFormat df = new DecimalFormat("0.00000");
        return new double[]{
            Double.parseDouble(df.format(kelvin)),
            Double.parseDouble(df.format(fahrenheit))
        };
    }
}

使用细节

三角函数

要求传入的参数全部为弧度,可以用 Math.toRadians()方法把角度转为弧度

对数运算

Math.log():默认以 e 为底

计算其他数字为底的对数(使用换底公式

java
public class time_test {
    public static void main(String[] args) {
        System.out.println(tool.log_x_n(2,2));
    }
}

class tool{
    public static double log_x_n(int x,int n){
        double temp1 = Math.log10(n);
        double temp2 = Math.log10(x);
        return temp1 / temp2;
    }
}

⭐ 任意随机数公式

获取 [a,b] 之间的随机数,公式: (int ) (a + Math.random * ( b - a + 1) )

案例:生成 2 <= x <= 7 之间的随机数

java
for (int i = 0; i < 5; i++) {
    System.out.println((int)(2 + Math.random()*(7 - 2 + 1)));
}

// 输出结果
6
7
3
2
5

推导过程

(1)Math.random() * 6 返回的是 0 <= x < 6 小数

(2)2 + Math.random() * 6 返回的就是 2 <= x < 8 小数

(3)右边是无限接近于 8 的小数,最后取整即可得到整数(右边界 7)