![]() |
Delphi-Version: 6
StrToInt exeption bei Zahlen, die eigentlich drüber sind
Hallo, ich kann kein StrToInt auf Zahlen werfen, die über maxint gehen. Meine aktuelle Zahl ist über 6 Milliarden. Was kann ich da einsetzen? Gibt es irgendeine Standardfunktion?
|
AW: StrToInt exeption bei Zahlen, die eigentlich drüber sind
StrToInt64, ist aber vielleicht noch nicht in Delphi 6 enthalten.
|
AW: StrToInt exeption bei Zahlen, die eigentlich drüber sind
StrToFloat müsste auch unter Delphi 6 mit "übergroßen" Ints zurechtkommen.
|
AW: StrToInt exeption bei Zahlen, die eigentlich drüber sind
Mit dem uralten
![]() ![]() Sowie der Weg mit einem Cast über Variant und dessen Konvertierungsfunktionen.
Delphi-Quellcode:
var
s: string; v: Variant; i: Int64; s := '123456789123456789'; i := Variant(s); // oder falls es nicht direkt geht s := '123456789123456789'; v := s; i := v; Achtung, in alten Delphis gab es noch ein paar Bugs bei 64 Bit-Integern. Dort waren ein paar der impliziten Konvertierungs- und Rechenfunktionen für UInt64 und Int64 teilweise falsch zugerodet. So lange du nur 63 Bit und keine negativen Zahlen nutzt, wird es keine Probleme geben, ansonsten mußt du etwas aufpassen. Falls du z.B. mit UInt64 rechnen willst, aber das Ergebnis nicht stimmt, weil intern Int64 verwendet wurde. |
AW: StrToInt exeption bei Zahlen, die eigentlich drüber sind
StrToInt64 gibt es bereits in Delphi 5.
Grüße Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 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