SQL中的两个数据类型decimal和numeric有何区别,如果没有区别为何又要弄成两种类型??

如题所述

带固定精度和小数位数的数值数据类型。

decimal[ (p[ , s] )] 和 numeric[ (p[ , s] )]
固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。

p(精度)
最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。

s (小数位数)
小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。
答案补充 1、decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个确定的数字表达法;没有存储值的近似值。
2、numeric 和 decimal 数据类型的默认最大精度值是 38。在 Transact-SQL 中,numeric 与 decimal 数据类型在功能上等效。
当数据值一定要按照指定精确存储时,可以用带有小数的 decimal 数据类型来存储数字。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-17
其实,numeric数据类型与decimal数据类型是一样的。它们表示数据的范围、所占的存储空间及定义的形式都相同。至于说为什么弄两个,我也不明白,这个大概要去问设计人员了...016.
第2个回答  2013-08-17
numeric可以指定精度
decimal是固定的精度