Java中的Math.log()无法正常工作

问题描述 投票:0回答:2

我现在有点困惑。 我的代码如下所示:

double pc = 0.125;
double po = 0.2;  
double product = pc*Math.log(pc/po);
System.out.println(product);

我希望结果为-0,025514997,而不是输出-0.4700036292457356

问题出在哪儿???

java math logarithm
2个回答
4
投票
Math.log(a); // log e

Math.log10(a); // base 10 

Math.log(x)/Math.log(2); // log 2

Math.log(x)/Math.log(your_own); // log your_own

1
投票
public void test() {
    double pc = 0.125;
    double po = 0.2;
    System.out.println("pc * Math.log(pc / po) = " + pc * Math.log(pc / po));
    System.out.println("pc * Math.log10(pc / po) = " + pc * Math.log10(pc / po));
}

版画

pc * Math.log(pc / po)= -0.05875045365571695

pc * Math.log10(pc / po)= -0.0255149978319906

证明a)您的问题出了点问题-0.05875045365571695 pc * Math.log(pc / po)导致-0.05875045365571695而不是-0.4700036292457356并且b)您需要使用log10来获取基数为10的日志。

© www.soinside.com 2019 - 2024. All rights reserved.