![]() |
Wie kann ich einen Floattypen definieren (TTyp = 0..360)
Wie kann ich einen neuen Floattypen definieren?
bei ganzzahligen Typen kann ich mit
Delphi-Quellcode:
eine Typ definieren der Werte von 0 bis 360 haben darf. Allerdings sind dann nur ganzzahlige Werte erlaubt.
type
TWinkel = 0..360; Ich möchte allerdings das Werte von 0 bis 360 erlaubt sind welche auch nachkommastellen haben dürfen. Also zum Beispiel 22.5 hab bisher folgendes versucht
Delphi-Quellcode:
und
type
TWinkel = 0,0..360,0;
Delphi-Quellcode:
Bei beiden Varianten meckert allerdings der compiler weil der "." bzw. das "," an den stellen unerwartet ist (also syntaktich nicht hingehört)
type
TWinkel = 0.0..360.0; |
Re: Wie kann ich einen Floattypen definieren (TTyp = 0..360)
also der type der form
Delphi-Quellcode:
würde ja bedeuten der compiler müsste eine bereichsprüfung mit unendlich vielen zahlen durchgehen! schon zwischen 0 und 0.1 gibt es unendlich viele zahlen! :shock:
TWinkel = 0,0..360,0;
hab aber leider keine idee was man sonst machen könnte! [edit] ist schon spät und montag![/edit] |
Re: Wie kann ich einen Floattypen definieren (TTyp = 0..360)
Zitat:
Du könntest das von 0..36000 gehen lassen, und deine Werte dann entsprechend mit 100 multiplizieren, bzw. dividieren. ist aber wohl auch nicht so schön die Lösung. |
Re: Wie kann ich einen Floattypen definieren (TTyp = 0..360)
Was spricht gegen Properties?
Delphi-Quellcode:
Wenn dir das zu doof ist, schnappe dir FreePascal. Das kann IMHO Operatorüberladung. Damit könntest du "direkt" mit den Instanzen der Klassse rechnen. ;)
private fSomeFloat :float;
public property SomeFloat read fSomeFloat write setSomeFloat; ... procedure TSomeType.setSomeFloat(const aValue: float); begin if (aValue < 0) or (aValue > 360) then raise EOutOfBoundsException('miep'); fSomeFloat := aValue; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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