Problem bei einfachem Zinsprogramm (zu große Zahlen?)



  • Hallo,

    bin grad dabei für eine Schulaufgabe ein Programm zu schreiben, indem man folgendes eingibt:
    - monatliche Einzahlung
    - Zinssatz
    - Laufzeit
    - gewünschter Auszahlungsbetrag nach der Laufzeit

    cout<<"Einzahlung (in Euro): ";
           float Rate;           // monatlich eingezahlter Betrag
           cin>>Rate;
           cout<<"Zins (in Prozent): ";
           float Zins;           // Zinssatz über die gesamte Laufzeit
           cin>>Zins;
           cout<<"Laufzeit (in Jahren): ";
           float L;              // Dauer des angelegten Kapitals
           cin>>L;
           cout<<"Wartezeit (in Jahren): ";
           float W;              // Zeitraum zwischen Einzahlung und Auszahlung
           cin>>W;
           cout<<"Rente (in Euro): ";
           float R;              // monatlich ausgezahlter Betrag
           cin>>R;
    
           float K = 0;          // Kapital
    
           L = L*12;             // monatsgenaue Laufzeit           
           int zaehler = 0;
    
           do                    // Berechnung des Kapitals während der Laufzeit
               {
               K = K * (1 + Zins / 100) + Rate;
    
               zaehler ++;
               } while (zaehler < L); 
    
           int Auszahlungsdauer = 0;// Gibt an wie viele Monate Rente ausgezahlt wird
    
           do                    // Berechnung des Kapitals während der Rente
               {
               K = (K - R) * (1 + Zins / 100);
               Auszahlungsdauer ++;
               } while (K > 0);
    

    Bei zu großen Werten fängt das Programm an falsch zu rechnen (40 Jahre, 100 Euro monatlich und 5% Zins). Habs auch schon mit long double versucht, leider klappt das auch nicht. Soo groß sind meine Zahlen eigentlich auch nicht? Dachte nicht, das es damit Schwierigkeiten geben würde. 😞

    Hat wer nen Tipp parat? 🙂

    mfg
    metler



  • Ehm gib deine konstanten Werte mal (bei float) mit .f an ... und dann berechnet man Zinseszins per power (potenz) ...



  • Das Problem ist die Auszahlungsschleife. Wenn am Anfang sehr viel eingezahlt wird, erreicht das Kapital sehr große Werte. Dann kann der Zinsertrag bei der Rente größer als die Rente selbst werden und du landest in einer Endlosschleife. 5% Zinsen pro Monat sind auch wirklich selten. 🙂



  • Danke Braunstein, da lag der Hund begraben. Wäre ich nie drauf gekommen. 🙂 Nun funktioniert wunderbar. 👍

    mfg
    metler


Anmelden zum Antworten