![]() |
Fakultät
Hallo, ich habe ein Problem, ich möchte ein Programm schreiben, mit dem man die Fakultät von beliebigen Zahlen ausrechnen kann. Ich dachte eigetlich, dass ich es habe, aber irgendwas stimmt noch nicht, bis 12! tut alles, aber ab 13! kommt ein falsches Ergebnis raus. Hier mein Quelltext:
Delphi-Quellcode:
Ich weiß einfach nicht, wo mein Fehler ist :(
procedure TForm1.Button1Click(Sender: TObject);
var x, z: Integer; begin x := StrToInt(Edit1.Text); z := x; if x = 0 then begin Edit1.Text := '1'; end else if x < 0 then begin Edit1.Text := 'Ungültige Funktionseingabe!'; end else if x = 1 then begin Edit1.Text := '1'; end else begin repeat z := z * (x-1); x := x-1; until x = 1; Edit1.Text := IntToStr(z); end; end; Ich danke euch schon im voraus für eure Hilfe! MfG Florian |
Re: Fakultät
Dann überleg doch mal, wie groß der Datentyp Integer ist und wie groß das Ergebnis von 13!.
|
Re: Fakultät
Vielleicht hilft das
![]() |
Re: Fakultät
hihi, dummer Fehler!
Danke! Mit Real kann ich am weitesten rechnen, oder? Weil Real macht dann ja auch noch mit E... |
Re: Fakultät
.. mit Float Werten bekommst Du ungenauigkeiten hinein, die könnten bei Fakultät
auch sichtbar werden. Ich würde es mal mit Int64 versuchen. Grüße Klaus |
Re: Fakultät
Siehe Post #3
|
Re: Fakultät
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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 by Thomas Breitkreuz