sql-server – SQL Server十进制刻度长度 – 可以还是必须?
我真的只是在SQL Server 2008 R2中对DECIMAL(也许NUMERIC)类型提出质疑.
MSDN说:
我理解如下: >如果我有DECIMAL(10,5) – 我可以存储12345.12345或12345678.91. 清楚吗? 但是我收到这个错误信息: SELECT CAST(2.8514 AS DECIMAL(5,5))
我认为5,5意味着我可以有5位数字,最多5位可以是小数点的小数点. 正如我所试 SELECT CAST(12.851 AS DECIMAL(6,5)) - overflows too 然而 SELECT CAST(1.23456 AS DECIMAL(6,5)) - is OK. 那么什么是真相呢 DECIMAL(a,b)表示我可以有一个数字,并且它们中的一个是小数点的右边(左边的那个a-b到dec点)? 我真的很困惑doc中的声明,它被复制到处.请花一点时间解释一下这个简单的事情. 多谢谢! 解决方法想到这个(最简单的方法)的最简单方法就是精度是数字的总数,其中scale是小数点右边的位数.所以DECIMAL(p,s)表示点左边的p-s数字,点数右边的s位数.这解释了你所看到的所有转换错误:2.8514不能是十进制(5,5),因为p-s = 0; 12.851不能为小数(6,因为p-s = 1等等. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |