Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Prüfung großer Zahlen
MarcRB1975 - Fr 19.01.07 18:18
Titel: Prüfung großer Zahlen
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!!
freedy - Fr 19.01.07 18:31
Titel: Re: Prüfung großer Zahlen
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 - 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 - 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 ...
delfiphan - 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 - 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!!!!
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!