Entwickler-Ecke
Sonstiges (Delphi) - Sehr große Integer
caveman - Fr 21.05.04 13:36
Titel: Sehr große Integer
Hallo!
Ich würde gerne mal wissen wie ich in Delphi gewaltig große Integerzahlen bekommen kann, denn ich möchte ein paar 'kleine' mathematische Berechnungen durchführen und brauche dafür einen Datentyp der weit aus mehr als Int64 speichern kann. Der Wertebereich sollte so in etwa von 0..10^200 liegen(wenn's noch größer geht hab ich auf keinen Fall etwas dagegen, denn es kann sein, dass ich es evt noch größer benötige, aber damit könnte ich mich erst einmal zu frieden geben).
Wichtig ist auch, dass ich die Zahl mit einer Kommazahl multiplizieren kann(wird dann aber mit round eh wieder auf integer gebracht), und dass ich bis auf die letzte Stelle genau rechen kann.
Die Performance ist mit primär eigentlich egal, natürlich hab ich gegen eine schnelle Methode nichts einzuwänden, aber eine langsame tut's auch...
So, das waren jetzt ziemlich viele Forderungen an meinen Datentypen, deshalb weiß ich nich ob jemand weiß wie man soetwas realisieren kann?
Für Bemühungen die zur Lösung meines Problems beitragen möchte ich mich schon mal bedanken.
mfg caveman
Ken-san - Fr 21.05.04 13:45
Also erstma guten Tag
Ich hätte da mal eine kleine Frage wie willst du genau rechnen wenn du die komazahlen wegrundest??? naja aber hast du es schonmal mit Double probiert ich weißt nich genau wie groß da der Zahlenbereich liegt aber er ist größer als bei den Integer werten.:twisted:
mfg
Kenny
caveman - Fr 21.05.04 13:59
unter genau versteh ich lediglich bis zur letzten Stelle VOR dem Komma, der Nachkommaanteil entsteht erst du die Multiplikation, der interessiesrt mich jedoch nicht weiter.
Und ja ich habes es schon mit double probiert, aber laut delphi Hilfe hat double einen Grenzwert von 1.7e+308 und Int64 einen von -2^63..2^63-1 dafür hat double aber auch nur eine Genauigkeit von 15-16 Stellen und das ist zu wenig bei einer Zahl von 1^308.
Gausi - Fr 21.05.04 14:33
hmm...sehr große Integer Werte? Brauchst du etwa große Primzahlen oder so? Aber wozu dann Multiplikation mit Kommazahlen..naja egal.
Kann sein, dass es z.B. bei Torry Komponenten mit sowas gibt. Ansonsten: Datentyp selber proggen. Vorgehensweise z.B.:
Ein Array anlegen, was so viel Platz bietet (nicht 8Byte wie Int64, sondern meinetwegen 16Byte), wie du brauchst. Und anschliessend alle Operationen die du brauchst (Addieren, Multiplizieren etc.) selber schreiben. Dazu musst du dir natürlich überlegen, wie sich die Werte in dem Array ändern, wenn man zwei solche Arrays miteinander auf die eine oder andere Art verwurstet...Oder wenn man so ein Array mit ner Kommazahl multipliziert.
caveman - Fr 21.05.04 16:33
Also danke für den Tipp, aber bei Torry hab ich nix brauchbares gefunden...na dann werd ich wohl mal versuchen wie du beschrieben hast mir einen eigenen Datentyp zu schreiben...
Trotzdem Danke nochmal an alle!
mfg caveman
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!