//以下方法无法正常工作,我不确定原因。日志结果不正确。 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;
}
}
答案 0 :(得分:6)
Math.log
method使用基本e
,即自然日志,而不是公共日志,基数10
。 0.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);
答案 2 :(得分:0)
因为log与任何标准数学库中的log方法一样,使用基数e。从这个意义上说,你得到的答案是正确的。您需要一个不同的计算来计算您正在考虑的基础中的日志。