我现在有点困惑。 我的代码如下所示:
double pc = 0.125;
double po = 0.2;
double product = pc*Math.log(pc/po);
System.out.println(product);
我希望结果为-0,025514997,而不是输出-0.4700036292457356
问题出在哪儿???
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
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的日志。