![]() |
Frage zu Zinsberechnung [N00B]
Hallo,
ich benutze seit einer Woche Delphi (Schule), bin also noch absoluter Anfänger. Nun habe ich mir zu Hause überlegt, dass ich doch mal ein Programm zur Zinsberechnung schreiben könnte. Ich habe mir im Internet noch ein wenig Wissen dazu angelesen. Allerdings kann das Programm nun leider nur Zinssummen richtig ausrechnen, bei denen der Zinssatz mindestens 100% beträgt :roll: Bei anderen Zinssätzen wird als Endkapital einfach das Startkapital wieder ausgegeben. Der Code:
Delphi-Quellcode:
Ich denke mal, dass das Problem in der Zahlenausgabe liegt, bin mir aber nicht ganz sicher...
procedure TForm1.btEndeClick(Sender: TObject);
begin close; end; procedure TForm1.Button1Click(Sender: TObject); var Kapital, Zinssatz, Laufzeit : integer; Endkapital : real; begin Kapital := StrToInt (edKapital.Text); Zinssatz := StrToInt (edZins.Text); Laufzeit := StrToInt (edLaufzeit.Text); EndKapital := StrToFloat (lbKapital.Caption); Endkapital := Kapital * (Power ( (1 + (Zinssatz div 100)), Laufzeit)); lbKapital.Caption := FloatToStr (Endkapital); lbJahre.Caption := IntToStr (Laufzeit); end; Danke im Vorraus. |
Re: Frage zu Zinsberechnung [N00B]
Das dürfte auch über 100 nicht richtig rechnen.
div rundet das Ergebnis. nimm stattdessen / |
Re: Frage zu Zinsberechnung [N00B]
hallo ausserdem solltest du auch den Zinssatz real machen.
zum testen, alles real machen und Treffnix / statt div und schon geht es. raik |
Re: Frage zu Zinsberechnung [N00B]
Delphi-Quellcode:
Es reicht, wenn du das 'div' durch ein '/' ersetzt. Damit wird die ganze Berechnung ins real-Format konvertiert.
procedure TForm1.Button1Click(Sender: TObject);
var Kapital, Zinssatz, Laufzeit : integer; Endkapital : real; begin Kapital := StrToInt (edKapital.Text); Zinssatz := StrToInt (edZins.Text); Laufzeit := StrToInt (edLaufzeit.Text); EndKapital := StrToFloat (lbKapital.Caption); // <----- Wozu brauchst du diese Zeile? Endkapital := Kapital * (Power ( (1 + (Zinssatz / 100)), Laufzeit)); lbKapital.Caption := FloatToStr (Endkapital); lbJahre.Caption := IntToStr (Laufzeit); end; Dann musst du Kapital, Zinssatz und Laufzeit nicht auch als real deklarieren (integer ist vielleicht in der Aufgabenstellung vorgegeben!?) |
Re: Frage zu Zinsberechnung [N00B]
Noch was nebenbei, schau dir mal StrToFloatDef und StrToIntDef an ;-)
|
Re: Frage zu Zinsberechnung [N00B]
Danke euch allen, jetzt geht es. :???:
Ich habe doch noch alle Werte als "real" deklariert, damit man beispielsweise auch Zinssätze von x,x oder z.B. 1,5 Jahre eingeben kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz