Java Zinsrechnung frage

hallo,

ich habe folgendes Problem,

ich will in Java ein Programm schreiben was nach Eingabe vom Startkapital + Zinssatz und Laufzeit den Endjahresbetrag anzeigen kann,

allerdings soll Java das wenn Laufzeit > 1 ist für jedes Jahr anzeigen, das heißt 1 Jahr: Kapital 2 Jahr Kapital

sodass er immer das Vorangegagene Jahr als “Startkapital nimmt”, ist das irgendwie möglich ?
wenn ja wie =)

paul

so jetzt kann ich mirs selbst beantworten bin net drauf gekommen^^

[code] for (int b=1; b<laufzeit; b++){//begin

			faktor = (100.0 + zinssatzInProzent) / 100.0;				
			anfangsKapital = anfangsKapital * faktor;
			gerundetErgebnis = ((int) (anfangsKapital*100))/100.0;
			
			System.out.println("Ihr Kapital nach "+b+" Jahr(en) "+gerundetErgebnis+" ");[/code]

Also, um das etwas effektiver zu machen:

  1. durch 100 teilen kannst du gleich zu Anfang, dann kannst
    du auch immer in Anteilen von 1 statt in Prozent rechnen.
    Spart Nerven und Rechenfehler

  2. man potenziert das einfach, um bei
    konstantem Zinssatz direkt auf das
    Endergebnis zu kommen, eine Schleife
    braucht man allenfalls, wenn sich der
    Zinssatz andauernd ändert.
    Mittels Potenzieren läßt sich zudem auch
    der Zinssatz nach Bruchteilen von Jahren
    korrekt ausrechnen.
    Ich meine, die Bank rechnet dabei das Jahr
    zu 360 Tagen, könntest du dann aber nochmal
    im Bedarfsfalle nachschlagen.

Also etwa sowas:

Endkapital = Anfangskapital * (1+ ZinsatzInProzent/100)^(Laufzeit/Jahr)

Zwischendurch runden ist besonders bei kleinen Beträgen recht
ungenau, ich meine, das wird auch nicht gemacht.

mit dem Potenzieren is das in Java doch aber gar nich so einfach, oder? Ich meine mich zu erinnern, dass ich dafür mal ne eigene Klasse schreiben musste…

Nein, eigentlich nicht.
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html#pow(double,%20double)

die POW funktion gibt es eig. in jeder Programmiersprache (in der Standardlibary), oft in der Klasse/Namespace/Datei “math” :wink:
nur in VB kann man soweit ich weiß ein “^” verwenden o.O