Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   StrToInt exeption bei Zahlen, die eigentlich drüber sind (https://www.delphipraxis.net/203864-strtoint-exeption-bei-zahlen-die-eigentlich-drueber-sind.html)

kagi3624 1. Apr 2020 12:55

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?

Uwe Raabe 1. Apr 2020 13:09

AW: StrToInt exeption bei Zahlen, die eigentlich drüber sind
 
StrToInt64, ist aber vielleicht noch nicht in Delphi 6 enthalten.

Delphi.Narium 1. Apr 2020 13:58

AW: StrToInt exeption bei Zahlen, die eigentlich drüber sind
 
StrToFloat müsste auch unter Delphi 6 mit "übergroßen" Ints zurechtkommen.

himitsu 1. Apr 2020 14:45

AW: StrToInt exeption bei Zahlen, die eigentlich drüber sind
 
Mit dem uralten Delphi-Referenz durchsuchenVal sollte es auch gehen, falls Delphi-Referenz durchsuchenStrToInt64 noch fehlt.

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.

Dalai 1. Apr 2020 15:14

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