The Real type allows you to perform calculations on real values using up to 15 significant digits. The precision of decimals is not guaranteed. For accurate calculations, use "Currency".

Name of the variable to declare. This variable will be of real type (8-byte real). A real can contain up to 15 significant digits. The value of a real corresponds to:

Minimum value: 1.7*10-308

Maximum value: 1.7*10+308

<Variable name> is 4-byte real

<Variable name 1>, <Variable name 2> are 4-byte reals

<Variable name>:

Name of the variable to declare. This variable will be a 4-byte real. A 4-byte real can contain up to 6 significant digits. The value of a 4-byte real corresponds to:

Minimum value: 3.4*10-38

Maximum value: 3.4*10+38

This type is not supported. It is replaced by a real.

Remarks

Default value

A "Real" variable that is declared but not initialized is equal to 0.

Binary coding of reals

All the reals contain the same number of significant digits (15).

If the result of a calculation performed on reals involves more than 15 significant digits, this result will be automatically rounded to 15 significant digits. For a better precision, use the Currency or Numeric type.

Thousand separator

You can use spaces and underscore characters to separate thousands in numbers. For example:

num1 is real
num1 = 123 456.478
num2 is real
num2 = 7_014.478

Problems of precision with the reals

The operations performed with the "real" types are not precise because of the computing representation of reals.

Two reals that are equal mathematically speaking are not necessarily equal computer-wise and the ">", "<" or "=" operators can return results that are "false" mathematically speaking.

To fix some of these problems:

the "=" operator is accurate to 10e-6 on reals. Therefore, for two reals that are relatively close, the "=" and ">" operators (or "=" and "<") can return True for the same values.

the conversion of real values into string uses a complex algorithm. This is why, in most cases, the display by trace is correct.

To avoid these problems, you must use the Currency or Numeric type that uses an exact memory representation.

Specific features of PHP

The numbers (real, integer, currency, numeric) cannot exceed 14 significant digits in PHP. If they exceed this limit, they are rounded to 14 digits.

Differences with WINDEV/WEBDEV 5.5

The types of reals have been modified between WINDEV/WEBDEV 5.5 and WINDEV/WEBDEV 2024:

Type of reals in version 5.5

Type of reals in version 2024

Real

4-byte real

Turbo real

Not available anymore

Double real

Real

In WINDEV and WEBDEV 5.5, 4-byte reals were used by default. In WINDEV and WEBDEV 2024, 8-bytes are used by default.