AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Wozu ist die CompilerVersion vom Typ Extended ?

Wozu ist die CompilerVersion vom Typ Extended ?

Ein Thema von Rollo62 · begonnen am 30. Jul 2020 · letzter Beitrag vom 31. Jul 2020
Antwort Antwort
Seite 2 von 2     12
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
225 Beiträge
 
Delphi XE5 Professional
 
#11

AW: Wozu ist die CompilerVersion vom Typ Extended ?

  Alt 31. Jul 2020, 14:35
Vielleicht stimmt das nicht ganz: denn selbst die Dezimalzahl 0.1 läßt sich binär nur durch einen unendlich nichtperiodischen binären Wert darstellen, also nicht exakt, sondern nur gerundet. Und wenn ich nach 32 Bit, 64 Bit oder 80 Bit runde, kommen "ein bißchen" andere Werte raus, wodurch die absolute Gleichheit nicht mehr besteht, weil u. U. ein Bit anders gesetzt ist.
Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher.
John C. Cornelius
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
225 Beiträge
 
Delphi XE5 Professional
 
#12

AW: Wozu ist die CompilerVersion vom Typ Extended ?

  Alt 31. Jul 2020, 15:17
Meine Vermutung – warum sich Mr. Turbo Pascal & Embarcadero für den DatenType Extended entschieden hat – ist, daß der inzwischen stets vorhandene mathematische Coprozessor (Intel/AMD) reelle Zahlen immer mit der vollen "Bandbreite" von 80 Bit (= Extended) verarbeitet, egal ob die Werte als 32 oder 64 etc. Bit vorliegen.
Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher.
John C. Cornelius
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
2.675 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Wozu ist die CompilerVersion vom Typ Extended ?

  Alt 31. Jul 2020, 16:12
Nicht nur das es für den Zweck der sinnloseste aller Typen ist,
es ist auch noch der Typ welcher auf jeder Platform anders ist.
clipboard03.jpg

Das wird vielleicht nochmal interessant wenn RadStudio wirklich auf Win64, Macos und sonstwas portiert ist.

Selbst mit der kleinsten maximalen Versionsnummer von 1.79e+308 bleibt Embarcadero wohl noch genug Zeit für die Portierung
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
412 Beiträge
 
#14

AW: Wozu ist die CompilerVersion vom Typ Extended ?

  Alt 31. Jul 2020, 16:57
Ich verstehe das Problem nicht.

Selbst wenn das auf jeder Plattform anders ist, dann bleibt ein typischer Vergleich {$if CompilerVersion>=35.5} auf allen Plattformen doch gültig, egal mit wie vielen Bits die Gleitkommazahl dargestellt wird. Das hat ja Uwe bereits sehr deutlich dargestellt.

Eine Diskussion über ein Problem das es mit der CompilerVersion 40.1 geben könnte, ist an den Haaren herbei gezogen. Ich würde diese Diskussion einfach auf den Tag verschieben, an dem es die CompilerVersion 40.1 o.ä dann gibt.
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
225 Beiträge
 
Delphi XE5 Professional
 
#15

AW: Wozu ist die CompilerVersion vom Typ Extended ?

  Alt 31. Jul 2020, 17:02
Nicht nur dass es für den Zweck der sinnloseste aller Typen ist, es ist auch noch der Typ welcher auf jeder Platform anders ist.
Könnte sein, daß es historisch gewachsen ist. Für numerische Berechnungen (= mein Schwerpunkt) ist Extended der sinnvollste Datentyp. Noch besser wäre eine noch höhere Genauigkeit (mindestens 256 Bit), die es leider nicht gibt. Und für die Zielplattform 64-Bit steht leider
Delphi-Quellcode:
Type
  Extended = Double;
was - für meine Aufgaben - ein absoluter Rückschritt ist. Deswegen bleibe ich weiterhin auf der 32-Bit-Zielplattform. Das war wahrscheinlich der kleinste gemeinsame Nenner, nachdem alle MicroSoft-Produkte & Compiler (C#, C++) und auch Fortran keinen Extended-Datentyp kennen. Muß wohl weiterhin Multipräzisions-Routinen verwenden, um meinen Genauigkeitsansprüchen gerecht zu werden...
Gruß, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher.
John C. Cornelius
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.342 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Wozu ist die CompilerVersion vom Typ Extended ?

  Alt 31. Jul 2020, 18:59
Ja, für Berechnungen, aber zur "Speicherung" war es eigentlich nie gedacht.

PS: Auch wenn der Extendet in einigen Plattformen 16 Byte groß ist, hat er dennoch nur die bekannte 10 Byte an Nutzdaten und der Rest ist eine eher sinnlose Speicherausrichtung.
auf 4 Byte (12 Byte gesamt), hätte doch bestimmt auch gereicht. (wäre nun die Frage, ob man dort auch packed benutzen kann, um die ungenutzten 6 Byte loszuwerden ... aber egal, weil man den Typ ja eigentlich sowieso nicht benutzt)

Auf "neueren" Plattformen nutzt daher Delphi auch Double, selbst wenn man Extended angibt.
Aber man hätte dort dennoch besser den "Typ" ganz weglassen können/sollen, anstatt den Typ mit einem anderen, kleinen oder gar bösartig größerem Typ intern zu ersetzen.
Böse, wenn da jemand mit Pointern und "fest" 10 Byte arbeitet und nun keine Fehlermeldung bekommt, weil es ja den "Typ" dennoch gibt, obwohl es ihn nicht mehr gibt.
Auch hätte man gern das deprecated ans Extended hängen dürfen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (31. Jul 2020 um 19:04 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf