![]() |
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? |
Re: Prüfung auf Integer oder Real
Also:
Delphi-Quellcode:
Trunc gibt dir den Teil vor dem Komma, und wer der gleich der Zahl ist, naja, dann ist es ein Integer
if Trunc(Zahl) = Zahl then
ShowMessage('Integer') else ShowMessage('Real'); |
Re: Prüfung auf Integer oder Real
Hi!
Was wäre mit einem Real wie 13,0? Ciao fkerber |
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.
|
Re: Prüfung auf Integer oder Real
Hi!
Naja ne Typumwandlung geht dann aber schief oder geht das tortzdem? Ciao fkerber |
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:
Müsste so gehen. Hab "val" noch nie angewendet - hoffentlich hab ich die Hilfe da richtig verstanden ;)
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; |
Re: Prüfung auf Integer oder Real
Delphi-Quellcode:
var
a: Real; b: Integer; begin a := 13.0; b := Integer(a); end; Zitat:
|
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; |
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 :) |
Re: Prüfung auf Integer oder Real
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:15 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 by Thomas Breitkreuz