Ich schlage dieses Verfahren ja nicht für "kleine" Werte von x (also nicht für x <= 1754) vor. Mir ist vollkommen klar, dass der Aufwand via log10 weit grösser ist. Wenn ich dich aber richtig verstehe, kann dein Programm Näherungswerte "nur" bis 1754! berechnen, dann ist aus.
In dem Programm werden im "Normal"-Modus zur Speicherung der Daten Extended-Variablen verwendet, und da gibt es nun einmal die Obergrenze 1.1E+4932
Anders ist es im "BigDecimal"-Modus.
Da kannst du die Fakultät bis 10000 berechnen. Exact übrigens und nicht nur näherungsweise.
Die 10000 als Obergrenze für Fakultät ist willkürlich festgelegt.
Allerdings können diese im Ausgabefeld nicht in voller Länge angezeigt werden.
Das hatte ich hier
https://www.delphipraxis.net/195060-...extlaenge.html einmal angesprochen.
Aber mache einmal folgendes:
Stelle auf "BigDecimal"-Modus (2tes Panel in der Statusbar)
Stelle "Auch Integerzahlen in technischer Darstellung" auf "Nein" (9tes Panel in der Statusbar)
Gib 10000! ein.
Als Rechenergebnis erhältst du "Zahl zu lang" in grüner Schrift.
Rechtsklicke den Text.
In einem PopUp-Menu wird angeboten, die Zahl ins Clipboard zu stellen oder in einer Datei zu speichern.
Wenn du in Datei speichern wählst, wird in der Datei "Log.txt" im Programmverzeichnis gespeichert.
Oder rechtsklicke den Text mit gedrückter Ctrl-Taste.
Dann wird der "Dialog für lange Zahlen" geöffnet, in dem du die Zahl (in Worten) ansehen kannst.
Im Anhang findest du 2 Dateien, die Zahl in Ziffern, die Zahl in Worten.