讓我們有下面的代碼計算日誌基地2
(float)Math.Log(3.83031869)
我得到的輸出是
1.342948
但是,當我使用許多在線計算器計算出的log 2的相同數量的我
1.93746
請問這個問題有什麼解釋嗎?提前致謝。
讓我們有下面的代碼計算日誌基地2
(float)Math.Log(3.83031869)
我得到的輸出是
1.342948
但是,當我使用許多在線計算器計算出的log 2的相同數量的我
1.93746
請問這個問題有什麼解釋嗎?提前致謝。
Math.Log(num)
返回以e爲底的對數
Math.Log(num, base)
可能是你在找什麼。
如可在MSDN http://msdn.microsoft.com/en-us/library/x80ywz41.aspx
可以看出的Math.Log
函數計算對數用鹼e
。
請參閱http://msdn.microsoft.com/en-us/library/hd50b6h5.aspx爲您所需。
當只使用一個參數調用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
謝謝克里斯。順便說一句,我得到了(-infinity)一些數字的Log2og。我怎麼能解決這個問題? – FSm
什麼投入導致了這個結果?根據文檔,這發生在輸入爲0且基數大於1或輸入爲+ infinity且基數介於0和1之間時發生。 –
非常感謝Charis – FSm