AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfung auf Integer oder Real

Ein Thema von evilseven · begonnen am 6. Mai 2004 · letzter Beitrag vom 6. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
evilseven

Registriert seit: 6. Mai 2004
6 Beiträge
 
#1

Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:16
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?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:22
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:24
Hi!

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

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:26
Den kann man ja als Integer ansehen, oder etwa nicht? 13,0 besitzt eigentlich keinen Nachkommateil, deshalb kann der Wert als Integer angesehen werden.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#5

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:28
Hi!

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

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:32
Erstmal herzlich willkommen in der DP!


@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
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:32
Delphi-Quellcode:
var
  a: Real;
  b: Integer;
begin
  a := 13.0;
  b := Integer(a);
end;
Zitat von Delphi 7 Compiler:
Invalid Typecast
Also, es muss immer mit Trunc gearbeitet werden
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:35
@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;
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:41
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
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#10

Re: Prüfung auf Integer oder Real

  Alt 6. Mai 2004, 19:43
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.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
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