2014-09-22 70 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