AGB  ·  Datenschutz  ·  Impressum  







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

Aufzählungstyp mit Gleitkommazahlen

Ein Thema von Mojito · begonnen am 30. Nov 2012 · letzter Beitrag vom 30. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2      
Mojito

Registriert seit: 29. Okt 2012
39 Beiträge
 
#1

Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 13:25
Hallo liebe Delphi Freunde,

ich möchte einen Aufzählungstyp erstellen, der Gleitkommazahlen wie 2.1, 2.9,10.2 etc. enthält. Wenn ich dies mache erhalte ich jedoch eine Fehlermeldung, da nur Ganzzahlen erlaubt sind:

type
TZalen=(1.0,2.0,3.0); E2029 Bezeichner erwartet, aber Real-Konstante gefunden

bzw wenn ich die Zahlen in Anführungszeichen ('3.2') setze,

"E2029 Bezeichner erwartet, aber String-Konstante gefunden "

Habt ihr eine Lösung, wie man dieses Problem umgehen könnte?

Vielen Dank für eure Hilfe
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 13:29
Als einziges was den Aufzählungstypen beibehalten würde, fiele mir ein Vielfache der WErte zu benutzen - quasi wie einen Festkommawert, und dann bei Benutzung entsprechend zu dividieren. Man kann das zwar mittels Funktionen und Drumherum einigermaßen nett machen, aber "schön" ist das dennoch nicht. Wenn du von dem Enum nachher keine Sets brauchst, würde ich fast auf die guten alten Konstanten zurückgreifen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 13:32
[OT]Mit Java wäre das keine Problem ....[/OT]

Bei enums können nur Ganzzahlwerte verwendet werden.

Was willst du eigentlich damit erreichen?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Mojito

Registriert seit: 29. Okt 2012
39 Beiträge
 
#4

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 13:33
Hallo Medium,

ja das würde wahrscheinlich gehen. Bei 30-40 Gleitkommawerten, würde das jedoch sehr viel und unübersichtlich werden.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 13:42
[OT]Mit Java wäre das keine Problem ....[/OT]
Soweit ich weiß, sitzt da eine Kaffebohne und mach aus der reals Konstanten, die bei Bedarf rückübersetzt werden.

Was willst du eigentlich damit erreichen?


eine andere Möglichkeit wäre:
mytype=(zweiknull,dreiknull,vierk30,_5k79) daß müßte bei Bedarf natürlich wieder übersetzt werden.

Gruß
K-H

Zitat:
ja das würde wahrscheinlich gehen. Bei 30-40 Gleitkommawerten, würde das jedoch sehr viel und unübersichtlich werden.
Jo und Du bist auf dem besten Weg Dich zu wundern warum 2.300 nicht gleich 2.30 ist??

In den letzten Wochen gab es doch (gefühlt) haufenweise Threads dazu.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (30. Nov 2012 um 13:46 Uhr) Grund: kein roter Kasten!
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 13:44
Ich würde einen "normalen" Enum-Typen und ein konstantes Array draus machen:
Delphi-Quellcode:
type
  TStufe = (stWenig, stMittel, stBoah);
const
  cZahlen: array[TStufe] of Double = (1.0, 2.0, 3.0);
Das kann man dann so benutzen:
Delphi-Quellcode:
procedure VerarbeiteStufe(AStufe: TStufe);
begin
  ShowMessage(FloatToStr(cZahlen[AStufe]));
end;
Uli Gerhardt

Geändert von uligerhardt (30. Nov 2012 um 13:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#7

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 13:45
Du könntest du inetwa beschreiben was du dann im weiteren Verlauf damit vorhast?

Vielleicht kommst du mit einem Array viel schneller zum Ziel,

Grüße
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
Mojito

Registriert seit: 29. Okt 2012
39 Beiträge
 
#8

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 14:03
Der Aufzählungstyp ist Teil eines Records, der für einen Array genutzt wird. So ungefähr sieht oder soll es aussehen.

Delphi-Quellcode:
type
TZeit=(1.0,2.1.,5.0,12.3);
TPNummer=integer;
....

TPersonal = record
Arbeitszeit: Zeit;
Mitarbeiter: integer;
...

TPKarte = array[1..100] of TPersonal;

var
Personal:TPKarte;
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#9

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 14:25
Warum dafür eine Aufzählung? Einfach als Float oder dar TDateTime (TTime) in den Record und fertig.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Aufzählungstyp mit Gleitkommazahlen

  Alt 30. Nov 2012, 16:35
Ich nehme an, daß die Arbeitszeit in 5minutenschritten , oder so ähnlich, erfaßt wird, darum die Aufzählung.
Da müßte dann eine spezielle Art der Rundung eingebaut werden.


Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 13:43 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