AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie kann ich einen Floattypen definieren (TTyp = 0..360)
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich einen Floattypen definieren (TTyp = 0..360)

Ein Thema von SirThornberry · begonnen am 31. Jan 2005 · letzter Beitrag vom 31. Jan 2005
Antwort Antwort
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

Wie kann ich einen Floattypen definieren (TTyp = 0..360)

  Alt 31. Jan 2005, 19:48
Wie kann ich einen neuen Floattypen definieren?

bei ganzzahligen Typen kann ich mit
Delphi-Quellcode:
type
  TWinkel = 0..360;
eine Typ definieren der Werte von 0 bis 360 haben darf. Allerdings sind dann nur ganzzahlige Werte erlaubt.

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:
type
  TWinkel = 0,0..360,0;
und
Delphi-Quellcode:
type
  TWinkel = 0.0..360.0;
Bei beiden Varianten meckert allerdings der compiler weil der "." bzw. das "," an den stellen unerwartet ist (also syntaktich nicht hingehört)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: Wie kann ich einen Floattypen definieren (TTyp = 0..360)

  Alt 31. Jan 2005, 19:58
also der type der form TWinkel = 0,0..360,0; 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!

hab aber leider keine idee was man sonst machen könnte!

[edit] ist schon spät und montag![/edit]
  Mit Zitat antworten Zitat
rantanplan99
(Gast)

n/a Beiträge
 
#3

Re: Wie kann ich einen Floattypen definieren (TTyp = 0..360)

  Alt 31. Jan 2005, 20:22
Zitat von ibp:
schon zwischen 0 und 0.1 gibt es unendlich viele zahlen!
Naja, es gibt nur endliche viele Zahlen da wir hier ja nicht im reellen Raum sind, sondern im Raum der maschinendarstellbaren Zahlen (glaub nach der IEEE 754 Norm), und davon gibt es nunmal nur endlich viele, wenn auch verdammt viel endlich viele.

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.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Wie kann ich einen Floattypen definieren (TTyp = 0..360)

  Alt 31. Jan 2005, 22:19
Was spricht gegen Properties?
Delphi-Quellcode:
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;
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.
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:23 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