Los tipos de datos para usar como números reales son los siguientes:

Números reales

Identificador

Desde

Hasta

Tamaño en bytes

Cifras significativas

Single

1.5e-45

3.4e38

4 bytes

7-8

Real

5.0e-324

1.7e308

8 bytes

15-16

Double

5.0e-324

1.7e308

8 bytes

15-16

Extended

1.9e-4951

1.1e4932

8 o 10 bytes

19-20

Currency

-922 337 203 685 477.5807

922 337 203 685 477.5807

8 bytes

Identificador: Single
Desde: 1.5e-45
Hasta: 3.4e38
Tamaño en bytes: 4 bytes
Cifras significativas: 7-8

Identificador: Real
Desde: 5.0e-324
Hasta: 1.7e308
Tamaño en bytes: 8 bytes
Cifras significativas: 15-16

Identificador: Double
Desde: 5.0e-324
Hasta: 1.7e308
Tamaño en bytes: 8 bytes
Cifras significativas: 15-16

Identificador: Extended
Desde: 1.9e-4951
Hasta: 1.1e4932
Tamaño en bytes: 8 o 10 bytes
Cifras significativas: 19-20

Identificador: Currency
Desde: -922 337 203 685 477.5807
Hasta: 922 337 203 685 477.5807
Tamaño en bytes: 8 bytes
Cifras significativas:

A las variables de este tipo se les puede asignar valores numéricos reales con notación científica, con signo o sin signo. También se les puede asignar cualquier tipo de dato de número entero, lo contrario no es posible. El tipo de dato currency es especial, al ser interpretado como un número entero de 64 bits internamente, se usa para manejar datos monetarios muy precisos, con cuatro cifras decimales. Cuando la precisión en cifras significativas de uno de los tipos de datos reales, es rebasada los datos generalmente se truncan.

-
🢃
1
2
3
4
5
6
7
8
9
{$codepage UTF8}

VAR a:real;

BEGIN
a:=1.231234567891234566666;
writeln(a:0:30);
readln()
END.
Código fuente 22: Truncamiento de un dato de tipo real, mayor a su rango permitido.

En el ejemplo anterior se intenta asignar un dato real mayor a su rango, y después lo muestra truncado en pantalla: 1.2312345678912350, esto no siempre es así debido a que estos tipos de datos no se comportan como los tipos de datos enteros.

Los tipos de datos single, double son iguales a las especificaciones IEEE-754, el tipo de dato extended cumple con las especificaciones del x86 extended de los microprocesadores basados en la arquitectura x86, el tipo de dato Currency es un tipo dato propio de delphi, y el tipo de dato real es propio del standard pascal.

El tipo de dato Extended, puede variar su tamaño dependiendo del microprocesador con el cual se trabaje, con los microprocesadores x86, siempre será de 10 bytes, pero con otros microprocesadores que no soporten este tipo de dato, el tamaño será igual a su tipo de dato real de mayor precisión. En el caso de de los microprocesadores x86_64, el extended puede ser de 10 bytes o 8 bytes dependiendo del sistema operativo que se use, actualmente en un S.O. Win 32 este será de 10 bytes, con un S.O. Win 64 este será de 8 bytes, y en Linux tanto de 32 o 64 bits, este será de 10 bytes.