Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prüfen ob (Ganz-)Zahl (https://www.delphipraxis.net/13459-pruefen-ob-ganz-zahl.html)

devnull 19. Dez 2003 14:47

Re: Prüfen ob (Ganz-)Zahl
 
Hi, du könntest das vll so machen:
Delphi-Quellcode:
   if zahl1 <> round (zahl1) then   // Zahl ist eine KommaZahl
   // zahl1 ist hier vom Typ real - Umwandlung davor mit try-except StrToFloat
Mit frac bekommste die Nachkommaziffern heraus...

devnull

Tyrael Y. 19. Dez 2003 14:51

Re: Prüfen ob (Ganz-)Zahl
 
Zitat:

Hi, du könntest das vll so machen:
Source:

if zahl1 <> round (zahl1) then // Zahl ist eine KommaZahl
// zahl1 ist hier vom Typ real - Umwandlung davor mit try-except StrToFloat


Mit frac bekommste die Nachkommaziffern heraus...

devnull
oh Mann
gut das ich sowas in unserem Code nicht sehe
mir stehen die Haare zu Berge

try except ist zur Feherbehandlung und nicht um einen Wert richtig zu stellen.
so ein Konstrukt funktioniert, sollte aber nie benutzt werden

Gruß

DevStar 19. Dez 2003 14:53

Re: Prüfen ob (Ganz-)Zahl
 
Zitat:

Zitat von Tyrael Y.
Wieso soll das schwer sein? Oder ist dir das zu schwer?

Und jetzt kopier mal einen Text in die Zwischenablage und füg ihn per Copy&Paste ein.
Strg+V ist zwar damit gesperrt, aber Shift+Einfg geht trotzdem noch, weil es für Einfg keinen ASCII-Code gibt, sondern nur einen Virtual Key Code.

PS: Nein, es ist nicht zu schwer. :wink:

MfG
DevStar

devnull 19. Dez 2003 14:55

Re: Prüfen ob (Ganz-)Zahl
 
Wieso soll es schlecht sein, einen TEXT(string) aus einem EDIT-Feld in einer try-except Behandlung zu konvertieren. Wenn da z. Bsp. Buchstaben enthalten sind, und ich habe diese Behandlung nicht, tritt doch eine AV ein, oder ? :gruebel:

Tyrael Y. 19. Dez 2003 14:57

Re: Prüfen ob (Ganz-)Zahl
 
@devstar was meinst du?
wo liegt das problem ? ich verstehe nicht ganz.
man kann es kopieren und auch mit shift+einfügen wieder einfügen

DevStar 19. Dez 2003 14:58

Re: Prüfen ob (Ganz-)Zahl
 
Zitat:

Zitat von devnull
Wenn da z. Bsp. Buchstaben enthalten sind, und ich habe diese Behandlung nicht, tritt doch eine AV ein, oder ? :gruebel:

Wenn überhaupt tritt ein EConvertError ein und keine AccessViolation.

Zitat:

Wieso soll es schlecht sein, einen TEXT(string) aus einem EDIT-Feld in einer try-except Behandlung zu konvertieren.
Weil es unnötig Rechenzeit verbraucht. Val ist bedeutend schneller und verursacht keine Exceptions.

MfG
DevStar

Tyrael Y. 19. Dez 2003 15:00

Re: Prüfen ob (Ganz-)Zahl
 
Zitat:

Wieso soll es schlecht sein, einen TEXT(string) aus einem EDIT-Feld in einer try-except Behandlung zu konvertieren. Wenn da z. Bsp. Buchstaben enthalten sind, und ich habe diese Behandlung nicht, tritt doch eine AV ein, oder ?
wie oben schon erwähnt:
Zitat:

Durch Exceptions können durchaus mal eine halbe Million Taktzyklen verbraten werden, von daher sollte man sie - falls möglich - vermeiden.
aus diesem Grunde und weil in try except ein Fehler behandelt werden soll, nicht eine Eingabe die man auch erwartet. Alle erwarteten Eingaben sollten mit if oder case Konstruktun gelöst werden.
So etwas sollte man nicht machen.

Gruß

DevStar 19. Dez 2003 15:01

Re: Prüfen ob (Ganz-)Zahl
 
Zitat:

Zitat von Tyrael Y.
@devstar was meinst du?
wo liegt das problem ? ich verstehe nicht ganz.
man kann es kopieren und auch mit shift+einfügen wieder einfügen

Ja. Das ist ja das Problem. Man kann u. a. auch Buchstaben "reinpasten".
Dann kann beim Konvertieren wieder eine Exception auftreten. (Falls man StrToInt verwendet)

Kurz gesagt, ich wollte nur zeigen, dass deine Aussage
Zitat:

Wenn sowieso nur Ganzahlen einegegeben werden sollen
verwende am Besten den Vorschlag von Highman, dann brauchst du auch
nix zu prüfen
falsch ist.
Val stellt die einzige vernünftige Methode zum Konvertieren dar.

MfG
DevStar

Tyrael Y. 19. Dez 2003 15:03

Re: Prüfen ob (Ganz-)Zahl
 
@devstar aso das meinst du, ok das ist richtig

chris_82 19. Dez 2003 15:11

Re: Prüfen ob (Ganz-)Zahl
 
Ok, ich hab die Variante mit Val genommen, nachdem ich von Luckie ein aufs Dach bekommen hab :cry:.

Hätte ja nicht gedacht, das so ein Problem doch so stark in der DP diskutiert wird, das gefällt mir :-D

Danke euch allen.

:xmas: :xmas: Wünsch euch schon mal ein schönes :xmas: Fest :xmas: und einen guten Rutsch, da ich nicht weiß ob ich es schaffe in den nächsten Tagen wieder bei DP vorbei zu schauen! :xmas: :xmas:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz