Autor |
Beitrag |
MarcRB1975
      
Beiträge: 131
XP, Windows7
Delphi 2005 PE, Turbo, RAD Delphi 2009, XE, XE2
|
Verfasst: Fr 19.01.07 18:18
Hallo,
ich würde gerne wissen wollen, ob man die Eingabe (Edit) überprüfen lassen kann, ob es sich dabei tatsächlich um Zahlen handelt.
Jetzt habe ich gemerkt, dass wenn man z.B. die Zahl 99.000.000,00 eingibt, er den Wert nicht prüfen kann, weil er sagt, dass es sich um keinen Integerwert handelt.
Nun... natürlich habe ich vorher alle Punkte und das Dezimalkomma entfernt, um dann nur die Zahl prüfen zu können.
Die Zahl ist ihm einfach zu groß.
Dann habe ich mir gedacht, ich lasse einfach jedes Zeichen nach dem anderen überprüfen, um festzustellen, ob die Zeichen auch tatsächlich alle Zahlen sind.
Das würde schon gehen, aber ich muss ja später mit der Zahl weiterrechnen und dazu brauche ich irgendwie eine Umwandlung von String (Edit) zu einem "Zahlen-Wert".
Kann man größere Zahlen nicht überprüfen lassen bzw. eine String-Wert (große Zahl) in einen Integerwert umwandeln lassen??
Vielen Dank im Voraus!!
_________________ Sokrates: "Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen."
|
|
freedy
      
Beiträge: 403
Erhaltene Danke: 1
Winows 7
Delphi XE
|
Verfasst: Fr 19.01.07 18:31
Hallo!
MarcRB1975 hat folgendes geschrieben: |
Nun... natürlich habe ich vorher alle Punkte und das Dezimalkomma entfernt, um dann nur die Zahl prüfen zu können.
Die Zahl ist ihm einfach zu groß.
|
Ähm, alle zusätzlichen Zeichen entfernt? D.h. die Zahl ist nachher: 9900000000 ??? Ist natürlich zu groß für einen Integer. Könntest dir einen neuen Typen basteln, der 128-Bit-Werte darstellen kann. Ist aber nicht ganz einfach. Die Funktionen wie StrToInt etc. müssen dann von dir implementiert werden.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 19.01.07 18:34
Also ich denk mal mit Int64 sollte man erstmal auskommen... Das geht immerhin bis 2^63...
Und IntToStr und so geht damit.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 19.01.07 18:41
Ab Delphi 7 (oder6???) Gibt's ne Funktion TryStrToInt64 ... Wenn Du aber wie angedeutet mit Nachkommastellen rechnen willst, solltest Du Dir überlegen, mit Gleitkomma-Typen (Single, Double, Extended) zu rechnen ... Ansonsten müsstest Du dich erst nach einer Groß-Zahl-Bibliothek umschauen ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Sa 20.01.07 13:49
... Oder Fixkommazahltyp "Currency", wenn es sich um Währungsangaben handelt (sieht irgendwie danach aus).
Geht von -922337203685477.5808 bis 922337203685477.5807 in 0.0001-Schritten.
|
|
MarcRB1975 
      
Beiträge: 131
XP, Windows7
Delphi 2005 PE, Turbo, RAD Delphi 2009, XE, XE2
|
Verfasst: Sa 20.01.07 13:58
ohhh.... vielen, vielen Dank für die Antworten.
Ich konnte jetzt mein Problem mit Int64 zum Glück lösen bzw. in den Griff bekommen.
Vielen Dank nochmal!!!!
_________________ Sokrates: "Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen."
|
|
|