Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prüfung auf Integer oder Real (https://www.delphipraxis.net/21708-pruefung-auf-integer-oder-real.html)

evilseven 6. Mai 2004 20:16


Prüfung auf Integer oder Real
 
Hallo!

Hoff das is das richtige Forum für mein Anliegen, also ich kam jetzt erst in der 12. Klasse zum Genuss, mich ans Programmieren zu wagen und sitze jetzt als Quereinsteiger in manchen Belangen recht hilflos vor einem Projekt. Kann mir jemand einen Tipp geben, wie ich die Ergebnisse von verschiedenen Rechnungen darauf prüfen kann, ob sie vom Typ Integer oder Real bzw ob es ganze Zahlen oder Brüche sind?

alcaeus 6. Mai 2004 20:22

Re: Prüfung auf Integer oder Real
 
Also:
Delphi-Quellcode:
if Trunc(Zahl) = Zahl then
  ShowMessage('Integer')
else
  ShowMessage('Real');
Trunc gibt dir den Teil vor dem Komma, und wer der gleich der Zahl ist, naja, dann ist es ein Integer

fkerber 6. Mai 2004 20:24

Re: Prüfung auf Integer oder Real
 
Hi!

Was wäre mit einem Real wie 13,0?

Ciao fkerber

alcaeus 6. Mai 2004 20:26

Re: Prüfung auf Integer oder Real
 
Den kann man ja als Integer ansehen, oder etwa nicht? 13,0 besitzt eigentlich keinen Nachkommateil, deshalb kann der Wert als Integer angesehen werden.

fkerber 6. Mai 2004 20:28

Re: Prüfung auf Integer oder Real
 
Hi!

Naja ne Typumwandlung geht dann aber schief oder geht das tortzdem?

Ciao fkerber

dizzy 6. Mai 2004 20:32

Re: Prüfung auf Integer oder Real
 
Erstmal herzlich willkommen in der DP! :bounce1:


@alcaeus (edit: bezogen auf dein 1. Posting): Naja nicht wirklich. Ein Real-Wert kann durchaus auch 2.0000... sein. Es könnte also passieren, dass der Vergleich (nicht notwendigerweise) true ergibt. Der Wert wäre zwar identisch, der Typ aber noch lange nicht.

Aber wenn man weiss, was man proggt, so kommt man garnicht erst in die Verlegenheit dies prüfen zu müssen.

Wenn es aber darum geht zu prüfen, ob ein String (Edit-Feld o.ä.) einen Real- oder Integerwert enthält, so ließe sich mit "val" arbeiten.

Beispiel:
Delphi-Quellcode:
var float: double;
    int,
    code: integer;
begin
// Prüfung ob Integer
  val('6,123', int, code);
  if code <> 0 then ShowMessage('Ist kein Integer')
  else ShowMessage('Ist ein Integer');

// oder Prüfung auf float:
  val('6,123', float, code);
  if code <> 0 then ShowMessage('Ist kein Float')
  else ShowMessage('Ist ein Float');
end;
Müsste so gehen. Hab "val" noch nie angewendet - hoffentlich hab ich die Hilfe da richtig verstanden ;)

alcaeus 6. Mai 2004 20:32

Re: Prüfung auf Integer oder Real
 
Delphi-Quellcode:
var
  a: Real;
  b: Integer;
begin
  a := 13.0;
  b := Integer(a);
end;
Zitat:

Zitat von Delphi 7 Compiler
Invalid Typecast

Also, es muss immer mit Trunc gearbeitet werden

alcaeus 6. Mai 2004 20:35

Re: Prüfung auf Integer oder Real
 
@dizzy: Entweder gleich oder nicht gleich..und wenn 12 Stellen hinter dem Komma noch ne 1 steht dann stimmt der Vergleich nicht mehr. Die Eingabe kann übrigens auch so geprüft werden:
Delphi-Quellcode:
var float: double;
    int: integer;
    s: String;
begin
// Prüfung ob Float
  if TryStrToFloat(s, float) then
    ShowMessage('Ist ein Float')
  else
    ShowMessage('Ist kein Float');

// Prüfung ob Integer
  if TryStrToInt(s, int) then
    ShowMessage('Ist ein int')
  else
    ShowMessage('Ist kein int');
end;

dizzy 6. Mai 2004 20:41

Re: Prüfung auf Integer oder Real
 
Jahaaaa... Dass der Wert gleich ist, das mag ja sein. Aber es geht (wenn ich das jetzt nicht völlig falsch verstanden hab) um den Typ :!:

Aber dass es TryStrToInt/Float gibt, datt wusste ich noch garnet. Wie komfortabel :)

alcaeus 6. Mai 2004 20:43

Re: Prüfung auf Integer oder Real
 
Zitat:

Zitat von evilseven
ob sie vom Typ Integer oder Real bzw ob es ganze Zahlen oder Brüche sind?

Also, für mich bedeutet ganze Zahl immer noch ein Wert vom Typ Integer, und ein Bruch einen Wert vom Typ Double.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz