2011-01-17 3 views
3

Ich versuche, an einem Skript zu arbeiten, wo der Benutzer ein monatliches Einkommen einfügt und den zukünftigen Wert mit Zinseszinsen nach 30 Jahren erhält. Wie es jetzt ist, habe ich einige Werte für Testzwecke zugewiesen.Berechne den zukünftigen Wert mit Zinseszinsen mit JavaScript

// Future Value 
    var investment = 800; 
    var annualRate = 2; 
    var monthlyRate = annualRate/12/100; 
    var years = 30; 
    var months = years * 12; 
    var futureValue = 0; 

    for (i = 1; i <= months; i++) { 
    futureValue = futureValue + investment * Math.pow(1 + monthlyRate, months); 
    } 

Problem ist, ich baue diese tatsächlich aus einer Excel-Tabelle, die die Einbau-FV() Formel und wenn eine Querüberprüfung ist verwenden, sind meine Ergebnisse völlig aus ... Jede Idee, was ich tue falsch, da ich überhaupt nicht in Finanzmathematik bin. Danke im Voraus.

Antwort

6

Die Math.pow ist unnötig, da Sie Monat für Monat futureValue berechnen und inkrementieren. Multiplizieren Sie einfach mit 1 + monthlyRate. Sie wollen auch den aktuellen Wert der Investition in die neue Anlage hinzuzufügen, bevor die Multiplikation:

for (i = 1; i <= months; i++) { 
    futureValue = (futureValue + investment) * (1 + monthlyRate); 
} 

Alternativ können Sie auch diese mit der folgenden Formel in einem Rutsch berechnen:

futureValue = investment * (Math.pow(1 + monthlyRate, months) - 1)/monthlyRate; 
+0

Vielen Dank! Das scheint der Trick zu sein, durch die Verwendung von Math.floor kann ich den Excel-Ergebnissen noch näher kommen. Aus irgendeinem Grund hatte ich Folgendes im Sinn: FV = PV * (1 + i)^t was völlig falsch war für das, was ich versuchte ... –

+0

@AlexBerg diese Formel ist für einen jährlichen Zinssatz, wo t ist Nummer des Jahres. Was Sie berechnen, ist zum Beispiel, wenn ich Ihnen 100 Dollar leihe und Sie mir nach 3 Jahren in einem Schuss mit Interessen geben werden. so ist pv 100 und t ist 3. –

1
function FVcalc(PresentAmount,InterestRate,NumberOfYears) { 
    var timescompound = 1; 
    var AnnualInterestRate = (InterestRate/100)/timescompound; 
    var Years= NumberOfYears 

    var Periods=timescompound*Years; 
    var NumPayments=Periods; 
    var Prin=PresentAmount; 

    MonthPayment=Math.floor((Prin)*(Math.pow((1+AnnualInterestRate),(Periods)))*100)/100; 
    FVFactor=(Math.pow((1+AnnualInterestRate),(Periods))) 
    return MonthPayment 
} 

http://www.uic.edu/classes/actg/actg500/pfvatutor.htm

1

Das ist mein Weg, wenn das Schreiben von Code für Zinseszins

function call() 
    { 
     var A = Principle; 
     var B = Interest; 
     var C = Years; 
     var D = 0; 
     var E = A*B/100; 
     D+=E; 
     var f=E+A; 
     document.write("0 year: Interest "+E+" Principal: "+f); 
     document.write("<br />"); 
     for (var i=1; i<C; i++) 
     { 
      E=f*B/100; 
      D+=E; 
      f=E+f; 
      document.write(i+"year: Interest "+E+" Principal:"+f); 
      document.write("<br />"); 
     } 

    return false; 
    } 
Verwandte Themen