2012-11-30 4 views
15

我々は次のコード計算ログベース2

(float)Math.Log(3.83031869) 

私が得た出力が

1.342948 

しかし、私は私が

を得た多くのオンライン計算機を使用して、同じ数のLOG2を計算しているを持ってみましょう
1.93746 

この問題の説明はありますか?前もって感謝します。

答えて

6

引数を1つだけ指定してLogメソッドを呼び出すと、Logベースが取得されます。あなたが2.0の第2引数を提供する場合、あなたが期待する結果を得る:

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

結果

1.34294800860817 
1.93746443219072 
+0

をあなたにクリスありがとうございます。ところで、私はいくつかの数のLog2のOG( - 無限)を得た。どうすればこの問題を解決できますか? – FSm

+1

その結果の原因は何ですか?ドキュメントによると、入力が0で底が1より大きい場合、または入力が+無限大で底が0と1の間にある場合に発生します。 –

+0

ありがとうCharis – FSm