Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   XE2 , Range REAl, ..... (https://www.delphipraxis.net/165111-xe2-range-real.html)

bernhard_LA 15. Dez 2011 07:32

XE2 , Range REAl, .....
 
Hi,

ich möchte bei Integer, Real, die Größe bei x32/x64 compiler settings auswerten:

bei Integer spielt meine Lösung, wir mache ich diese Analyse bei Real Datentypen ?

Delphi-Quellcode:

     ///  code geht

     SizeNativeIntEdit.Text := IntTOStr(SizeOf(NativeInt));

     NatIntEdit.Text := IntToStr(Low(NativeInt)) + '....' + IntToStr(HIgh(NativeInt)) ;

     FloatSizeEdit.Text := IntToStr(sizeof(real));

      ///  geht nicht .....
     FloatRangeEdit.Text := FloatToStr(min(Real)) + '....' +  FloatToStr(Max(Real));

himitsu 15. Dez 2011 08:08

AW: XE2 , Range REAl, .....
 
Was sollen dir diese Werte denn bringen?

Es gibt die bei den Floattypen quasi
den maximal möglichen Wert (Positiv und Negativ gleich),
den minimal möglichen Wert (wieder Positiv und Negativ gleich),
den maximal möglichen Wert, ohne Rundungsfehler, bzw. die maximale Anzahl an signifikanten Nachkomma/-Dezimalstellen(und nochmal).

PS: hast du schonmal in die Unit Math geschaut?
(gleich ganz oben die ersten Zeilen/Konstanten)

Und das SizeOf(Real) läßt sich auch über die Compilerschalter erfragen.
Aber wenn man einen Typen mit fester/definierter Größe braucht, dann nimmt man eh keine dynamischen Typen.

bernhard_LA 15. Dez 2011 08:36

AW: XE2 , Range REAl, .....
 
* die Daten stehen alle in der Doku ... braucht man eigentlich nicht im Code aber .....

in unserem Fall : Wir tauschen Daten zwischen Delphi und Matlab via DLL's aus ... meine DLL sagt wie große die einzelnen Datentypen sind und wenn nicht klappt ist der Matlab (Entwickler) Schuld -- und nicht mehr ich :-D

himitsu 15. Dez 2011 08:57

AW: XE2 , Range REAl, .....
 
Math.pas
Zitat:

Delphi-Quellcode:
const  { Ranges of the IEEE floating point types, including denormals }
  MinSingle  = 1.5e-45;
  MaxSingle  = 3.4e+38;
  MinDouble  = 5.0e-324;
  MaxDouble  = 1.7e+308;
  MinExtended = 3.4e-4932;
  MaxExtended = 1.1e+4932;
  MinComp    = -9.223372036854775807e+18;
  MaxComp    = 9.223372036854775807e+18;

  { The following constants should not be used for comparison, only
    assignments. For comparison please use the IsNan and IsInfinity functions
    provided below. }
  NaN        = 0.0 / 0.0;
  Infinity   = 1.0 / 0.0;
  NegInfinity = -1.0 / 0.0;

Wie gesgt,
Delphi-Quellcode:
MaxSingle
und
Delphi-Quellcode:
-MaxSingle
.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 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