![]() |
Aufzählungstyp mit Gleitkommazahlen
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
Delphi-Quellcode:
E2029 Bezeichner erwartet, aber Real-Konstante gefunden
TZalen=(1.0,2.0,3.0);
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 |
AW: Aufzählungstyp mit Gleitkommazahlen
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.
|
AW: Aufzählungstyp mit Gleitkommazahlen
[OT]Mit Java wäre das keine Problem ....[/OT]
Bei enums können nur Ganzzahlwerte verwendet werden. Was willst du eigentlich damit erreichen? |
AW: Aufzählungstyp mit Gleitkommazahlen
Hallo Medium,
ja das würde wahrscheinlich gehen. Bei 30-40 Gleitkommawerten, würde das jedoch sehr viel und unübersichtlich werden. |
AW: Aufzählungstyp mit Gleitkommazahlen
Zitat:
Zitat:
eine andere Möglichkeit wäre:
Delphi-Quellcode:
daß müßte bei Bedarf natürlich wieder übersetzt werden.
mytype=(zweiknull,dreiknull,vierk30,_5k79)
Gruß K-H Zitat:
In den letzten Wochen gab es doch (gefühlt) haufenweise Threads dazu. |
AW: Aufzählungstyp mit Gleitkommazahlen
Ich würde einen "normalen" Enum-Typen und ein konstantes Array draus machen:
Delphi-Quellcode:
Das kann man dann so benutzen:
type
TStufe = (stWenig, stMittel, stBoah); const cZahlen: array[TStufe] of Double = (1.0, 2.0, 3.0);
Delphi-Quellcode:
procedure VerarbeiteStufe(AStufe: TStufe);
begin ShowMessage(FloatToStr(cZahlen[AStufe])); end; |
AW: Aufzählungstyp mit Gleitkommazahlen
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 |
AW: Aufzählungstyp mit Gleitkommazahlen
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; |
AW: Aufzählungstyp mit Gleitkommazahlen
Warum dafür eine Aufzählung? :gruebel: Einfach als Float oder dar TDateTime (TTime) in den Record und fertig.
|
AW: Aufzählungstyp mit Gleitkommazahlen
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 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-2025 by Thomas Breitkreuz