用不同的基数计算Java中的对数

时间:2014-03-20 08:06:12

标签: logarithm

我想用Java计算logX(Y)。但是我不明白为什么当我计算Math.log10(1000)时我得到3.0,但是当我计算double x = Math.log(1000)/ Math.log(10)时我得到2.9999999999999996。

到目前为止,我的努力是:

public class log_bases {
    public static void main(String[] args) {
        double k = logOfBase(10,1000);
        System.out.println(k);                  // this outputs 2.99999999
        System.out.println(Math.log10(1000));   // this outputs 3.0
        double x = Math.log(1000) / Math.log(10);
        System.out.println(x);
    }

    public static double logOfBase(int base, int num) {
        return Math.log(num) / Math.log(base);
    }
}

1 个答案:

答案 0 :(得分:0)