1.Decimal 数据包含存储在最小有效数上的数据。在 SQL Server中,小数数据使用 decimal 或 numeric 数据类型存储。存储 decimal 或 numeric 数值所需的字节数取决于该数据的数字总数和小数点右边的小数位数。2.decimal(18,4),decimal(19,1),两者能保存的整数位和小数位不同.
create table tb(val1 decimal(18,4) , val2 decimal(19,1))
go
insert into tb values(1234567890123.1234 , 12345678901234567.1)
select * from tb
drop table tb
/*
val1 val2
-------------------- ---------------------
1234567890123.1234 12345678901234567.1
(所影响的行数为 1 行)
*/
精度不同,一个是小数点后面精确4位,一个是精确1位
注意的是decimal(18,4)总长18位,包括1位小数点和4为小数,也就是说18-1-4=13整数位只有13位
decimal(19,1)总长19位,17位整数,1位小数
注意float与double数据类型储存的是近似值,而decimal是字符串