DECIMAL(p) 浮点

DECIMAL 数据类型存储最多 32 个有效位的浮点十进制数字,其中 p 是总有效位数(精度)。

可以选择指定精度。如果未指定任何精度 (p),那么将 DECIMAL 视为 DECIMAL(16)(具有 16 位精度的浮点十进制)。DECIMAL(p) 具有在 10-130 与 10124 之间的绝对指数范围。

如果在符合 ANSI 标准的数据库中声明 DECIMAL(p) 列,那么小数位的缺省值为 DECIMAL(p, 0) 意味着只能将整数值存储在此数据类型中。

在不符合 ANSI 标准的数据库中,DECIMAL(p) 是一个数值范围大到足以存储值的指数符号表示法的浮点数据类型。

例如:以下计算说明 DECIMAL(5) 列在缺省语言环境中需要多少存储字节(其中小数点占据一个单独的字节):

数据值的符号为 1 字节
第一个数字为 1 字节
小数点为 1 字节
其余数字为 4 字节(精度 5 - 1)
e 符号为 1 字节
指数符号为 1 字节
指数为 3 字节
-------------------------------------------------
总共 12 个字节

因此,DECIMAL(5) 列中的“12345”在不符合 ANSI 标准的数据库内显示为“12345.00000”(即,有六位小数)。