Skip to main content

Data Type: REAL, LREAL

The data types REAL and LREAL are floating-point types according to IEEE 754. Floating-point types are necessary when using decimal numbers and floating-point numbers in decimal notation or exponential notation.

Table 20. Target System

Data Type

Smallest value number

Largest value number

Memory

REAL

1.0E-44

3.402823E+38

32-bit

LREAL

4.94065645841247E-324

1.7976931348623157E+308

64 bits



Example 206. Example
PROGRAM PLC_PRG
VAR
    rMax: REAL := 3.402823E+38; // Largest number
    rPosMin : REAL := 1.0E-44; // Smallest positve number
    rNegMax: REAL := -1.0E-44; // Largest negative number
    rMin: REAL := -3.402823E+38; // Smallest number

    lrMax: LREAL := 1.7976931348623157E+308; // Largest number
    lrPosMin : LREAL := 4.94065645841247E-324; // Smallest positve number
    lNegMax: LREAL := -4.94065645841247E-324; // Largest negative number
    lrMin: LREAL := -1.7976931348623157E+308; // Smallest number
END_VAR


Important

Support for the LREAL data type depends on the target device in use. See the respective documentation as to whether or not the 64-bit type LREAL is converted to REAL or remains as LREAL when compiling the application. Conversion may result in the loss of information.

Important

If the value of the REAL/LREAL number is outside of the value range of the integer, then an undefined result is yielded from a data type conversion from REAL or LREAL to SINT, USINT, INT, UINT, DINT, UDINT, LINT, or ULINT. The result depends on the target system. An exception error is also possible.  To get code that is independent of the target system, the application has to catch out-of-range violations.

If the REAL/LREAL number is within the value range of the integer data type, then the conversion operates the same way on all systems.