2016-07-09 10 views
1

Ich habe die folgende Formel in Excel.Excel-Formel in Javascript konvertieren - Math.pow()?

F14 = 100000

F15 = 10

F16 = 10

=(((1+F16)^(1/12)-1)*F14)/(1-((1+((1+F16)^(1/12)-1))^(-F15*12))) 

Dies ergibt die 1,297.75 korrekt ist. Einfach versuchen, die gleiche Formel in js zu verwenden, ergibt ein Ergebnis von 8800, offensichtlich falsch.

Wie ich es verstehe,^sollte ersetzt werden durch Math.pow (A, B), richtig? Trotzdem habe ich wirklich Probleme, dies richtig zu machen.

Kann mir jemand helfen?

EDIT: Alles ist gut. Die Formel, die ich gepostet habe, war etwas anders als die in Excel (weiß nicht, wie ich das gemacht habe). Alles ist gut und macht jetzt Sinn. Vielen Dank alle

+0

Yep. '^' ist für die Manipulation von Bits, 'Math.pow' steht für Potenzierung. (In ES2016 macht der Operator '**' auch Potenzierung.) – gcampbell

+0

egal was, Ihr Ergebnis sollte sein: '= (((1 + F16)^(1/12) -1) * F14)/(1- ((1 + ((1 + F16)^(1/12) -1))^(- F15 * 12))) = (((1 + 10)^(1/12) -1) * 100000)/(1 - ((1 + ((1 + 10)^(1/12) -1))^(- 10 * 12))) = ((11^(1/12) -1) * 100000)/(1 - ((1 + (11^(1/12) -1))^- 120)) = (0,22118855031199 * 100000)/(1- (1.22118855031199^-120)) = 22118.855031199/0.999999999961446 = ~ 22118.8550320518' –

Antwort

0

In meinem Excel, erhalte ich den Wert von 22118,85503 und so tut dies

var F14 = 100000, 
 
    F15 = 10, 
 
    F16 = 10; \t 
 

 
console.log(((Math.pow(1 + F16, 1/12) - 1) * F14)/(1 - (Math.pow(1 + (Math.pow(1 + F16, 1/12) - 1), -F15 * 12))));

+0

Seltsam. Welche Excel-Version führen Sie aus? Vielleicht ist die Formel bei den verschiedenen Ergebnissen irgendwie falsch? Ich bekomme das erwartete Ergebnis in Openoffice und Google-Blätter, aber Zahlen gibt mir 23k – user1525

+0

MS Office Professional Plus 2016 –

+0

Nochmals vielen Dank. Es stellt sich heraus, dass etwas mit meiner Formel nicht stimmt (stimmt nicht mit der überein, die ich gepostet habe. Alles ist jetzt gut) – user1525

Verwandte Themen