2012-11-30 22 views
15

Let abbiamo il seguente codiceCalcolo logaritmo in base 2

(float)Math.Log(3.83031869) 

L'output che ho ottenuto è

1.342948 

Ma quando ho calcolato il log2 per lo stesso numero utilizzando molti calcolatori online che ho ottenuto

1.93746 

Qualche spiegazione per questo problema, per favore? Grazie in anticipo.

risposta

6

Quando si chiama il metodo Log con un solo argomento, si ottiene la base di registro e. Se si fornisce il secondo argomento di 2,0, si ottiene il risultato che ci si aspetta:

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

Risultati

1.34294800860817 
1.93746443219072 
+0

Grazie Chris. A proposito, ho ottenuto (-infinity) Log2 og di alcuni numeri. Come potrei risolvere questo problema? – FSm

+1

Quali input hanno causato quel risultato? Secondo i documenti, ciò accade quando l'ingresso è 0 e la base è maggiore di 1 o l'ingresso è + infinito e la base è tra 0 e 1. –

+0

Grazie mille Charis – FSm

Problemi correlati