Zinsen in Java?

2 Antworten

Der Excel-Screenshot zeigt diese Formel:



In Java wurde angestrebt, die Berechnung der Potenz durch eine Schleife zu realisieren. Aus dem Code ist aber unklar, ob die Variable iJahr einen Anfangswert erhält und ob der Anfangswert aufgabengerecht gewählt wurde. Bemerkenswert ist in der Java-Lösung weiterhin, dass das nach Ablauf eines Jahres erhaltene Kapital jeweils auf ganze Cent gerundet wird. Diese Rundung kann durchaus ein kaufmännisches Erfordernis sein; in dem Excel-Programm findet sie aber nicht statt.

Eine while-Schleife ist für die hier auszuführende Berechnung eigentlich nicht erforderlich, da die Zahl der Schleifendurchläufe sich aus dem Anlagezeitraum ergibt und von vornherein bekannt ist. Eine while-Schleife verwendet man eigentlich nur, wenn die Zahl der Schleifendurchläufe unbekannt ist. In einem Fall, in dem die Zahl der Durchläufe vonvornherein bekannt ist, bevorzuge ich die Verwendung einer for-Schleife:

dBetrag = pdAnlagebetrag;
dMultipikator = 1 + Zinssatz/100;
for (int i = 0; i < piLaufzeit; i++) {
  dBetrag *= dMultiplikator;
  dBetrag = Math.round(dBetrag*100.0)/100.0;
}

Hier habe ich für den Multiplikator (also die Basis der Potenz) eine zusätzliche Variable eingeführt, um diesen Wert nur einmal berechnen zu müssen.

Die Anweisung

dBetrag *= dMultiplikator;

ist gleichbedeutend mit

dBetrag = dBetrag*dMultiplikator;
Woher ich das weiß:Berufserfahrung – Berufstätigkeit als Software-Entwickler

Man kann die Formel doch auch so in Java eingeben

return pAnlagebetrag*Math.pow((1+Zinssatz),piLaufzeit)

"pi" ist insoweit etwas verwirrend.

Oder natürlich auch per Schleife, was groß anderes wird pow vielleicht gar nicht machen.

double zinsfaktor=1.0+(double)Zinssatz/100;
double kapfaktor=1.0;
for(int i=0;i<piLaufzeit;++i)kapfaktor*=zinsfaktor;
return (double)pAnlagebetrag*kapfaktor;

Mal ungetestet

;