Thema: Delphi Größe von Extended

Einzelnen Beitrag anzeigen

Andreas13

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

AW: Größe von Extended

  Alt 31. Jul 2022, 11:40
Hallo,
Zitat:
https://docwiki.embarcadero.com/Libr...ystem.Extended
On Intel 64-bit Windows systems and all ARM systems, including iOS 64-bit, Android 32-bit and 64-bit and macOS 64-bit, however, the System.Extended type is an alias for System.Double, which is only 8 bytes. This difference can adversely affect numeric precision in floating-point operations. For more information, see Delphi Considerations for Multi-Device Applications.

The following code displays 10 on Win32, 8 on Win64 and 16 on macOS and Linux.
Writeln(IntToStr(SizeOf(Extended)));
Das ist leider sehr salopp, irreführend und sogar falsch, denn: unter Windows hängt es ausschließlich von der Zielplattform ab.
Beispiel:

1):
Auf 64-bit Windows Systemen ist Extended bei einem Kompilat für die 32-Bit- Zielplattform immer noch 10 Bytes lang und hat daher die volle Rechengenauigkeit (80 Bit) des seit Anfang der 1990-er Jahre stets integrierten Mathematischen Coprozessors.

2):
Auf 64-bit Windows Systemen ist Extended bei einem Kompilat für die 64-Bit- Zielplattform nur noch 8 Bytes lang und entspricht dem Type Double.

Grüße, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 (31. Jul 2022 um 11:43 Uhr)
  Mit Zitat antworten Zitat