Math.log不起作用 - 为什么?

时间:2014-03-13 00:54:16

标签: java

//以下方法无法正常工作,我不确定原因。日志结果不正确。 0.5返回日志值-0.6931471805599453,但我的计算器显示它应该返回-.3。

public static void printCommonLogTable()
{
    double x = 0;
    while (x <= 10) 
      {
       System.out.println (x+ "  " + Math.log(x));
       x = x + .5;
      } 
}

3 个答案:

答案 0 :(得分:6)

Math.log method使用基本e,即自然日志,而不是公共日志,基数100.5的自然日志为-0.6931471805599453

  

返回double值的自然对数(基数e)。

Math.log10 method用于公共日志(基数为10)。

  

返回double值的基数10对数。

答案 1 :(得分:0)

Java的Math.log函数使用基础e ,您从java获得的答案似乎是正确的答案。

我认为您的测试计算器使用的是e。以外的基础。

Java使用基数e,因为您可以使用此公式使用log base e轻松计算 y的基数x

double log_base_x_of_y = Math.log(y)/Math.log(x);

这称为 change of base formula

答案 2 :(得分:0)

因为log与任何标准数学库中的log方法一样,使用基数e。从这个意义上说,你得到的答案是正确的。您需要一个不同的计算来计算您正在考虑的基础中的日志。