Answers:
数值精度是指数字中存在的最大位数。
即1234567.89的精度为9
数字刻度是指最大小数位数
即123456.789的比例为3
因此,decimal(5,2)的最大允许值为999.99
数字的精度是位数。
数字的小数位数是小数点后的位数。
在字段定义上设置精度和小数位数时,通常隐含的是它们代表最大值。
例如,用precision=5
和定义的十进制字段scale=2
将允许以下值:
123.45
(p = 5,s = 2)12.34
(p = 4,s = 2)12345
(p = 5,s = 0)123.4
(p = 4,s = 1)0
(p = 0,s = 0)以下值是不允许的,否则将导致数据丢失:
12.345
(p = 5,s = 3)=>可以被截断为12.35
(p = 4,s = 2)1234.56
(p = 6,s = 2)=>可以被截断为1234.6
(p = 5,s = 1)123.456
(p = 6,s = 3)=>可以被截断为123.46
(p = 5,s = 2)123450
(p = 6,s = 0)=>超出范围请注意,范围通常由精度定义:|value| < 10^p
...
12345000
样 精度5还是8?如果5,用什么尺度?规模-3?
123450 (p=6,s=0)
超出范围?123450有6位数字,点后没有数字?
123450 (p=6,s=0)
对于5精度的十进制字段将超出范围(如示例中所述)。因为要存储在字段中的数字的精度必须小于或等于该字段的精度。
SQL Server 2000文档中的精度,小数位数和长度为:
精度是数字中的位数。小数位数是数字中小数点右边的位数。例如,数字123.45的精度为5,小数位数为2。