2014-09-22 68 views
0

我想写一个Java程序,可以把值,并把它们放入一个公式涉及日志1/3。如何计算java中的对数?

如何计算Java中的日志1/3?

+0

你需要自然对数吗?所以,你应该看看[Math :: log](http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#log(double)) – 2014-09-22 12:07:37

回答

2

您可以使用Math.log(value)获取特定值的日志,其中值被认为是double。您还可以使用Math.log10(value)来获取基准10日志。

所以,你可以只使用

Math.log(1/3.0) 
+1

OP的观点是正确。他问如何计算'log(1/3)'。你有没有试过'Math.log(1/3)'? – 2014-09-22 12:26:31

1

可以使用Java.lang.Math.log()方法计算的自然对数:

System.out.println("Math.log(1/3.0)=" + Math.log(1/3.0)); 

http://www.tutorialspoint.com/java/lang/math_log.htmhttp://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#log%28double%29

为了得到log_10,你可以这样做:

System.out.println("log_10(1/3.0)=" + (Math.log(1/3.0)/Math.log(10))); 
+0

我用它,但是当我计算这个:Math.log(5/2.0),结果是0.9162907318741551,但是当我用我的计算器计算结果是0.3979xxxx,为什么它可以不同? – 2014-09-22 12:48:54

+0

你在计算器上使用'ln'或'log'按钮吗? – MrTux 2014-09-22 14:07:43

+0

@MuhammadHaryadiFutra只需输入ln 2.5和登录到谷歌。你会看到两个数字。 – 2014-09-22 15:02:41

0

你并不需要一个新的实现有查看该

内置功能有关Math.log()

但在这种情况下log(1/3)会给你值infinity,如果你使用Math.log(1/3)

您可以使用log规则如下。

log(1/3) =log(1)-log(3) 

现在

Math.log(1/3)=Math.log(1)-Math.log(3) 

如:

System.out.println(Math.log(1)-Math.log(3)); 

输出地说:

-1.0986122886681098 
0

当你要计算的对数,你需要知道的基础。一旦你知道基本可以执行计算:

log_b(x) = ln(x)/ln(b) 

http://en.wikipedia.org/wiki/Logarithm#Change_of_base

在Java中的Math#log(double)函数计算自然对数。所以你可以用这个来计算给定碱基的对数b:

double result = Math.log(x)/Math.log(b); 
+0

为什么结果与计算器的结果不一样? – 2014-09-22 12:56:41

+0

你需要知道你想使用哪个对数。如果它是'10'的底部,则需要将'b'设置为'10'。你的计算器可能使用'e'作为基础'b',所以这将是自然对数。 http://en.wikipedia.org/wiki/Natural_logarithm – 2014-09-22 13:04:15