需求

java 中对数 log 如何计算?

解决

直接使用 Math.log 即可,唯一需要注意的是 底数是多少?

自然对数 e

double x = Math.log(10);

底数 10

double x = Math.log10(100);

其他底数

数学换底公式: logx(y) = ln(y) / ln(x)

库函数:

public class Logarithm {
    public static double log(double value, double base) {
      return Math.log(value) / Math.log(base);
    }
}

计算以33为底27的对数:

public static void main(String[] args) {
    double log = log(27, 33);
    System.out.println(log);
}

private static double log(double value, double base) {
    return Logarithm.log(value) / Math.log(base);
}

参考