SQL Server的DECIMAL类型

 INT

DECLARE @A INT
SET @A = 3.14159
PRINT @A
--3

 INT只会返回整数部分。

DECIMAL(P,S)

S表示小数点右侧存储的最大位数,P表示整个数字的总位数。

因此S<=P。

如果赋值时小数位数多于S,会自动四舍五入,保留S位小数。

当整数部分为0时,P可以等于S;

DECLARE @B DECIMAL(5,5)
SET @B = 0.141592
PRINT @B
--0.14159

当整数部分>0时,P必须大于S;

DECLARE @C DECIMAL(6,5)
SET @C = 3.141592
PRINT @C
--3.14159

并且,当P-S不足以容纳整数位数时,会出现算术溢出错误。

 

posted @ 2020-04-10 19:19  Mon's_Works  阅读(978)  评论(0编辑  收藏  举报