2016-04-15 19 views
1

Problem: Ich bekomme keine Fehler, wenn ich den Code ausführen, aber ich bekomme eine andere Summe und ich kann nicht herausfinden, warum? das Beste, was ich sammeln kann, ist die Funktion ist Punkt, bis es das erste Math.pow erreicht, sobald es durch es geht Summe ist anders jede Idee warum? Gibt es einen besseren Weg?Konvertierung Excel-Formel zu JavaScript

Excel Formel

=0.25/( LOG(
     $I$6/3.7 + 5.74/G18^0.9 
    ))^2 


Sum of excel formula is 0.0186 

Mein JavaScript

var test = function() { 
    var num = 0.00006/3.7; 
    var num2 = Math.pow(90068.45754973275, 0.9); 
    var num3 = 5.74/num2; 
    var num4 = num + num3; 
    var num5 = Math.log(num4); 
    var num6 = Math.pow(num5, 2); 
    var num7 = 0.25/num6; 
    return +num7.toFixed(4); 
}; 


Before .toFixed(4) sum is 0.0035080344556698015 
After sum is 0.0035 

Vielen Dank im Voraus!

+0

Sorry, ich habe noch nicht genügend Rep-Punkte oder würde es tun. Danke für die Rückmeldung. –

Antwort

0

JavaScript LOG ist der natürliche Logarithmus (also Basis e), Excel LOG-Funktion ist die Basis-10-Logarithmus.

0

Num3 ist falsch.

var num3 = 5.74/num2; 

Auch num4 num + num3 sein sollte: Es sollte umgekehrt werden

var num4 = num + num3 
+0

Ich bekomme immer noch nicht die richtige Summe, was ich jetzt bekomme ist 0,0035080344556698015 –

+0

Was ist, wenn Sie "+ num7" durch nur num7 ersetzen? –

+0

Sind Sie auf der Suche nach Base 2 Log, für ln, oder für Base 10 Log? Vielleicht sind diese neunte die gleichen Protokolle. Versuchen Sie, die Basis in beiden Fällen anzugeben. –

0

Wenn jemand interessiert ist, die Antwort ist Math.log10();