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不足以容纳整数位数时,会出现算术溢出错误。