B
balu
Gast
Hallo,
ich habe 2 Problemchen.
1.
Ich möchte das ein Tilgungsplan ausgegeben wird, funktioniert schon,
aber die Ausgabe soll nach dem 9. Jahr mit einem Leerzeichen weniger erfolgen,
damit die Formatierung stimmt. In meinem Beispiel habe ich es mit einer
Schleife versucht, aber es klappt irgendwie nicht.
2.
Wenn meine Berechnung mit dem Programm eine Laufzeit von bspw. 18 Jahren
hat, dann wird im 19.Jahr bei der "Schuld" der Wert "0" geschrieben, aber danach
folgen bei den anderen 3 Spalten (Zins, Tilgung, Annuität) auch noch Werte - das
soll nicht mehr passieren!
Was kann man da tun? Zum 1. Problem gibts den Versuch schon.
ich habe 2 Problemchen.
1.
Ich möchte das ein Tilgungsplan ausgegeben wird, funktioniert schon,
aber die Ausgabe soll nach dem 9. Jahr mit einem Leerzeichen weniger erfolgen,
damit die Formatierung stimmt. In meinem Beispiel habe ich es mit einer
Schleife versucht, aber es klappt irgendwie nicht.
2.
Wenn meine Berechnung mit dem Programm eine Laufzeit von bspw. 18 Jahren
hat, dann wird im 19.Jahr bei der "Schuld" der Wert "0" geschrieben, aber danach
folgen bei den anderen 3 Spalten (Zins, Tilgung, Annuität) auch noch Werte - das
soll nicht mehr passieren!
Was kann man da tun? Zum 1. Problem gibts den Versuch schon.
Code:
class Tilgung
{
// Membervariablen
double kreditbetrag;
double zinssatz;
int laufzeit;
double tilgungsrate;
public Tilgung(double kreditbetrag, double zinssatz, int laufzeit)
{
this.kreditbetrag = kreditbetrag;
this.zinssatz = zinssatz;
this.laufzeit = laufzeit;
tilgungsrate = 0;
}
// Dezimalformat wird festgelegt
DecimalFormat dFormat = new DecimalFormat ("###,###");
// Methoden
public String gibTilgungsplanAus()
{
String ret = "";
double gesamtZinsen = 0; // für die Berechnung der Gesamtzinsen
double gesamtAnnuitaet = 0; // für die Berechnung der Gesamtannuitaet
for (int x=0; x<=laufzeit; x++)
{
// für die Nummerierung am Anfang in der ersten Spalte
ret += " "+(x+1)+". ";
// Restschuld für die Werte in der zweiten Spalte
double restschuld=kreditbetrag-(x*(kreditbetrag/laufzeit));
if(restschuld<100000)
{
ret += " "+dFormat.format(restschuld);
}
else
{
ret += dFormat.format(restschuld);
}
// Zinsbetrag für die Werte in der dritten Spalte
double zinsbetrag=(kreditbetrag-(x*(kreditbetrag/laufzeit)))*zinssatz/100;
if(zinsbetrag<10000)
{
ret += " "+dFormat.format(zinsbetrag);
}
else if(zinsbetrag<1000)
{
ret += " "+dFormat.format(zinsbetrag);
}
else if(zinsbetrag<100)
{
ret += " "+dFormat.format(zinsbetrag);
}
else if(zinsbetrag>10000)
{
ret += " "+dFormat.format(zinsbetrag);
}
// Tilgungsrate für die Werte in der vierten Spalte
double tilgungsrate=kreditbetrag/laufzeit;
ret += " "+dFormat.format(tilgungsrate);
// Annuitaet für die Werte in der fünften Spalte
double annuitaet=((kreditbetrag-(x*(kreditbetrag/laufzeit)))*zinssatz/100)+(kreditbetrag/laufzeit);
ret += " "+dFormat.format(annuitaet)+"\n";
// Gesamt-Zinsen für die Werte in der zehnten Zeile
gesamtZinsen = zinsbetrag + gesamtZinsen;
// Gesamt-Annuitaet für die Werte in der elften Zeile
gesamtAnnuitaet = annuitaet + gesamtAnnuitaet;
}
ret += "\nZinsen gesamt: "+dFormat.format(gesamtZinsen)+"\n";
ret += "Annuitaet gesamt: "+dFormat.format(gesamtAnnuitaet)+"\n";
return ret;
}
}// end of class Tilgung