我试图在SQL Server中找出一列的十进制数据类型。我需要能够存储像15.5,26.9,24.7,9.8等值
我将decimal(18,0)赋值给列数据类型,但这不允许我存储这些值。
正确的做法是什么?
我试图在SQL Server中找出一列的十进制数据类型。我需要能够存储像15.5,26.9,24.7,9.8等值
我将decimal(18,0)赋值给列数据类型,但这不允许我存储这些值。
正确的做法是什么?
当前回答
你应该这样使用is:
DECIMAL(m,a)
M是小数的总位数。
A是小数点后的最大位数。
http://www.tsqltutorials.com/datatypes.php有所有数据类型的描述。
其他回答
你应该这样使用is:
DECIMAL(m,a)
M是小数的总位数。
A是小数点后的最大位数。
http://www.tsqltutorials.com/datatypes.php有所有数据类型的描述。
你可以试试这个
decimal(18,1)
数字的长度应该是18。小数点后的数字长度只能是1,不能超过1。
DECIMAL(18,0)允许小数点后面有0位数字。
使用DECIMAL(18,4)之类的东西来代替,这样就可以了!
总共有18位,其中小数点后4位(小数点前14位)。
在大多数情况下,我使用decimal(9,2),它在sql decimal类型中占用最少的存储空间(5字节)。
Precision =>存储字节数
1 to 9 => 5 10-19 => 9 20-28 => 13 29 to 38 => 17
它可以存储从0到9 999 999.99(前7位+小数点后2位=总共9位),这对于大多数值来说都足够大。
Decimal的设置是它的精度和刻度,或者在普通语言中,一个数字可以有多少位,以及小数点的右边有多少位。
所以如果你把圆周率转换成十进制(18,0),它将被记录为3?
如果你把圆周率转换成十进制(18,2),它将被记录为3.14?
如果你把圆周率输入十进制(18,10),记录为3.1415926535。