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