REAL/LREAL

Die Datentypen REAL und LREAL sind Gleitpunkttypen nach IEEE 754. Sie sind nötig bei der Verwendung von Dezimalzahlen und Gleitpunktzahlen in Punktdarstellung oder Exponentialdarstellung.

Datentyp

Untergrenze

Obergrenze

Betragsmäßig kleinste Zahl

Speicherplatz

REAL

-3.402823e+38

3.402823e+38

1.0e-44

32 Bit

LREAL

-1.7976931348623158e+308

1.7976931348623158e+308

4.94065645841247e-324

64 Bit

Beispiel

PROGRAM MAIN
VAR
    fMaxReal     : REAL  := 3.402823E+38;              // Largest REAL number
    fPosMinReal  : REAL  := 1.0E-44;                   // Smallest positive REAL number
    fNegMaxReal  : REAL  := -1.0E-44;                  // Largest negative REAL number
    fMinReal     : REAL  := -3.402823E+38;             // Smallest REAL number

    fMaxLreal    : LREAL := 1.7976931348623157E+308;   // Largest LREAL number
    fPosMinLreal : LREAL := 4.94065645841247E-324;     // Smallest positive LREAL number
    fNegMaxLreal : LREAL := -4.94065645841247E-324;    // Largest negative LREAL number
    fMinLreal    : LREAL := -1.7976931348623157E+308;  // Smallest LREAL number
END_VAR
REAL/LREAL 1:

Wenn der Wert der REAL/LREAL-Zahl außerhalb des Wertebereichs des Integers liegt, wird bei einer Datentypkonvertierung von REAL oder LREAL nach SINT, USINT, INT, UINT, DINT, UDINT, LINT oder ULINT ein undefiniertes Ergebnis geliefert.

REAL/LREAL 2:

Zuweisung eines besonders großen Literals

Um ein ganzzahliges Literal zuzuweisen, das größer ist als die Obergrenze von ULINT, muss entweder ein Komma gesetzt oder ein expliziter Typecast angegeben werden. Ohne eine solche Spezifizierung als Gleitkommazahl können Informationen verloren gehen.
Beispiel:
fMyReal : REAL := 3400000000000000000000.0;
fMyReal : REAL := REAL#3400000000000000000000;

Siehe auch: