对
SQL Server而言,Decimal可用来保存具有小数点而且数值确定的数值,它不像
float和
real是用来保存近似值。对于
Visual Basic而言,Decimal是其版本5新增的数据类型,目的是满足进行精密数学运算的需求,它是范围最大、最精确的
浮点数类型。对于
Excel而言,DECIMAL()函数用于按给定基数将数字的文本表示形式转换成十进制数。
在这里数字指一个或多个数(0,1,…,9)的组合,因而一百万能够被表示为1000000或+100000,数字百分之一(1/100)能够被表示为0.01。值得注意的是,逗号(,)是不允许在一个 Decimal名称中出现的。
对
SQL Server而言,decimal和
numeric视为相同的类型,它们可用来保存具有小数点而且数值确定的数值。它们不像float和real是用来保存近似值。此类型的列其声明方式为decima[(p[,s])]或numericl[(p[,s])]。其中p是此数值全部的位数,含小数部分但不包括小数点,s则是小数的位数。p值称为此数值的精确度,例如:decimal(10,3)表示共有7位整数3位小数,此例的精确度为10位。此类型的列可保存的值范围为1038-1到-1038-1之间。其占用存储空间依精确度不同而不同,下表给出Decimal类型变量精确度和占用空间的关系。
如果使用该类型的变量未指定精确度,则系统使用默认的18位精确度,如果未加以指定小数位数的话,系统的默认值为0位小数。
SQL Server搭配的前端开发工具(如
VB,
Delphi),其所支持的精确度为28位,如果需要超过28位的精确度的话,可以以命令行的方式执行
sqlservr.exe启动
SQL Server,并使用/参数即可,在此种状况下,此类型最大的精确度为38。
Decimal变量存储为96位(12个字节)无符号的
整型形式带符号的整型形式,并除以一个10的
幂数。这个变比因子决定了小数点右面的数字位数,其范围从0到28变比因子为0(没有小数位)的情形下,最大的可能值为+/-79,228,162,514,264,337,593,543,950,335。而在有28个小数位的情况下,最大值为+/-7.9228162514264337593543950335,而最小的非零值为+/-0.0000000000000000000000000001。
Decimal数据类型只能在
Variant中使用,即不能声明一变量为DecimaI的类型。不过可用Cde函数,创建一个子类型为Decimal的
Variant。