![]() |
Kreditendwert wird negativ
Gute Morgen nocheinmal,
ich weiß nicht genau ob es hier auch so geregelt ist, 1 Frage 1 Topic wie beim DelphiForum ? Aber nach meinem gmv bin ich schon der Meinung :-D Nach der super Hilfe von eben gerade, funktioniert alles super !
Delphi-Quellcode:
Jetzt besteht nurnoch das folgende Problem, wenn meine Rechnunug den letzten Monat erreicht ( also wenn der Kredit 0 € erreicht ), zeigt das StringGrid noch einen weiteren Monat an, wo der Kreditbetrag (ende) negativ wird...
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer ; kredit,zinsen,zinssatz,rate,ende : real ; begin kredit := StrToFloat(edit1.Text); rate := StrToFloat(edit2.Text); zinssatz := StrToFloat(edit3.Text)/100; i := 0 ; while kredit > 0 do begin inc(i); StringGrid1.RowCount:=(i+1); zinsen := kredit*zinssatz/12 ; ende := kredit-rate+zinsen ; StringGrid1.Cells[0,i]:=IntToStr(i); StringGrid1.Cells[1,i]:=FloatToStrF(kredit,ffFixed,10,2); StringGrid1.Cells[2,i]:=FloatToStrF(zinsen,ffFixed,10,2); StringGrid1.Cells[3,i]:=FloatToStrF(ende,ffFixed,10,2); kredit:=ende ; if ende < 0 then break ; Panel1.Caption := IntToStr(i); Panel2.Caption := FloatToStr(i/12); Panel4.Caption := FloatToStrF(ende,ffFixed,10,2); Dies hab ich schon versucht zu unterbinden in dem ich folgendes gemacht habe...
Delphi-Quellcode:
Was aber leider entweder den effekt hatte, das sich gar nichts tat oder in meinem Panel der anzeigt was noch zu zahlen sei im letzten montag 0 stand.
if ende < 0 then kredit := 0
Ich hoffe ich konnte das Problem verständlich schildern :| LG GericasS |
Re: Kreditendwert wird negativ
Hi GericasS,
ganz verstanden habe ich es nicht, aber vielleicht hilft Dir so etwas:
Delphi-Quellcode:
stahli
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer ; kredit,zinsen,zinssatz,rate,ende : real ; begin kredit := StrToFloat(edit1.Text); rate := StrToFloat(edit2.Text); zinssatz := StrToFloat(edit3.Text)/100; i := 0 ; Ende := 0; // <-- while (Kredit > 0) and (Ende >= 0) do // <-- begin inc(i); StringGrid1.RowCount:=(i+1); zinsen := kredit*zinssatz/12 ; ende := kredit-rate+zinsen ; StringGrid1.Cells[0,i]:=IntToStr(i); StringGrid1.Cells[1,i]:=FloatToStrF(kredit,ffFixed,10,2); StringGrid1.Cells[2,i]:=FloatToStrF(zinsen,ffFixed,10,2); StringGrid1.Cells[3,i]:=FloatToStrF(ende,ffFixed,10,2); kredit:=ende ; if ende < 0 then break ; // <-- das kann dann raus Panel1.Caption := IntToStr(i); Panel2.Caption := FloatToStr(i/12); Panel4.Caption := FloatToStrF(ende,ffFixed,10,2); ... |
Re: Kreditendwert wird negativ
Hey stahli,
ersteinmal danke für die schnelle hilfe, aber... das hat bei mir den Effekt, das es einen Wert in dem Panel anzeigt, aber dieser ist wieder negativ. Gibt es keine Möglichkeit, sobald der Wert von "ende" < 0 ist einfach aufzuhören und den letzten Wert von der Variable Kredit auszugeben ? Ich hoffe dies erläutert mein Problem besser :dance: LG |
Re: Kreditendwert wird negativ
Ich weiß ja nicht, was Du im Rest Deines Begin-End-Blockes noch machst...
Du könntest evtl. eine Hilfsvariable einführen:
Delphi-Quellcode:
Evtl. kannst Du dafür auch die Variable Kredit nehmen, müsstest sie aber dann vor dem While initialisieren (0 zuweisen).
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer ; kredit,zinsen,zinssatz,rate,ende : real ; NextEnde: Real; // <-- begin kredit := StrToFloat(edit1.Text); rate := StrToFloat(edit2.Text); zinssatz := StrToFloat(edit3.Text)/100; i := 0 ; NextEnde := 0; // <-- while (Kredit > 0) and (NextEnde >= 0) do // <-- begin inc(i); StringGrid1.RowCount:=(i+1); zinsen := kredit*zinssatz/12 ; ende := kredit-rate+zinsen ; StringGrid1.Cells[0,i]:=IntToStr(i); StringGrid1.Cells[1,i]:=FloatToStrF(kredit,ffFixed,10,2); StringGrid1.Cells[2,i]:=FloatToStrF(zinsen,ffFixed,10,2); StringGrid1.Cells[3,i]:=FloatToStrF(ende,ffFixed,10,2); kredit:=ende ; if ende < 0 then break ; // <-- das kann dann raus Panel1.Caption := IntToStr(i); Panel2.Caption := FloatToStr(i/12); Panel4.Caption := FloatToStrF(ende,ffFixed,10,2); ... NextEnde := ... // <-- schon mal schauen, was als nächstes kommt end; // <-- nächste While-Prüfung stahli |
Re: Kreditendwert wird negativ
Hallo,
eventuell könnte man es auch so angehen:
Delphi-Quellcode:
Grüße
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer ; kredit,zinsen,zinssatz,rate : real ; begin kredit := StrToFloat(edit1.Text); rate := StrToFloat(edit2.Text); zinssatz := StrToFloat(edit3.Text)/100; i := 0 ; while (Kredit - rate) > 0 do begin inc(i); zinsen := kredit*zinssatz/12 ; kredit := kredit-rate+zinsen ; Memo1.Lines.Add(format('%.2d %5.2f %5.2f',[i,kredit,zinsen])); // das hier war nur für mich zum Testen Panel1.Caption := IntToStr(i); Panel2.Caption := FloatToStr(i/12); Panel4.Caption := FloatToStrF(kredit,ffFixed,10,2); end; end; Klaus |
Re: Kreditendwert wird negativ
Zitat:
vielen vielen Danke Klaus hat super funktioniert :mrgreen: LG GericasS |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 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