实数类型定义了可以用浮点符号表示的数的集合。下表给出了基本实数类型的范围和存储格式:

|

类型

| 范围 |

精度

占字节数
Real48 2.9 x 10^-39 .. 1.7 x 10^38 11~12 6
Single 1.5 x 10^-35 .. 3.4 x 10^38 7~8 4
Double 5.0 x 10^-324 .. 1.7 x 10^308 15~16 8
Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 19~20 10
Comp -2^63+1 .. 2^63-1 19~20 8
Currency -922337203685477.5808 .. 922337203685477.5807 19~20 8

一般类型Real,在当前Object Pascal实现中等价于Double

|

类型

| 范围 |

精度

占字节数
Real 5.0 x 10^-324 .. 1.7 x 10^308 15~16 8

注意:六字节的Real48类型在Object Pascal较早的版本中叫做Real。重新编译使用了六字节Real类型的较早代码时,你也许想将其改成Real48。此时也可以用编译指示{$REALCOMPATIBILITY ON}将Real类型转回到六字节类型。

下列注释适用于基本实数类型:
· Real48类型维持着向后兼容(向较早的版本兼容)。该类型的存储格式并非出自Intel CPU系列,因此相对其他浮点类型来说,其执行效率较慢。
· Extended比其它实数类型提供了更高的精度,但同时也占用较多的空间。当要创建跨平台共享是数据文件时,应谨慎使用该类型。
· Comp类型来自Intel CPU,表示64位的整数。将其作为实数归类,是因为该类型不具备序数类型的一些特征(如,不能对Comp值进行递增或递减)。Comp类型仅用于向后兼容,因此在新的代码中应当使用Int64类型以获得更好的性能。
· Curreny是定点数据类型,该类型在货币计算时使舍入误差最小。Currency类型以含格式的64位整数存储,其中隐含地包括了表示小数部分的4位最少有效数字。在赋值语句和表达式中将该类型与其他实数类型混合时,Currency类型的值会自动被除以或乘以10000。(大多数货币数字都只含有2位小数,Currency类型总是保留4位小数,这就足以使货币计算的误差降到最小。)