2012-11-30 35 views
15

讓我們有下面的代碼計算日誌基地2

(float)Math.Log(3.83031869) 

我得到的輸出是

1.342948 

但是,當我使用許多在線計算器計算出的log 2的相同數量的我

1.93746 

請問這個問題有什麼解釋嗎?提前致謝。

回答

6

當只使用一個參數調用Log方法時,會得到Log base e。如果你提供的2.0的第二個參數,你得到的結果是你期望:

//Testing in LinqPad 
void Main() 
{ 
    Math.Log(3.83031869).Dump(); 
    Math.Log(3.83031869, 2.0).Dump(); 
} 

結果

1.34294800860817 
1.93746443219072 
+0

謝謝克里斯。順便說一句,我得到了(-infinity)一些數字的Log2og。我怎麼能解決這個問題? – FSm

+1

什麼投入導致了這個結果?根據文檔,這發生在輸入爲0且基數大於1或輸入爲+ infinity且基數介於0和1之間時發生。 –

+0

非常感謝Charis – FSm