SQL Server Express 2008 R2中数字类型的精度和小数位数
我在 sql server 2008 exp r2 中将列声明为 numeric(5,3) ,并且我认为它允许我保存像 12345.123 这样的值,但是当我尝试输入大于 100 的任何值时,它会给我溢出错误。这让我相信在 numeric(5,3) 中,5 代表数字的总长度,包括精度和小数位数。考虑到这一点,我将列的类型更改为十进制(9,3),并假设它允许我输入像 123456.123 这样的值,但它再次给出溢出错误。我无法理解 sql server 如何解释这种数据类型及其精度和小数位数。
更新:
奇怪的是,当插入值 numeric(9,3) 时,只允许输入 1234.123 等值,但在编辑行时,我可以输入值 123456.123。不知道这里发生了什么:(
i declared a column as numeric(5,3) in sql server 2008 exp r2 and i assumed that it would allow me to save values like 12345.123 but when i tried to enter anything greater than 100 it gives me overflow error. it made me believe that in numeric(5,3), 5 represents the total length of number including precision and scale. Having this in mind, i changed the type of column to decimal(9,3) and assumed that it would allow me to enter values like 123456.123 but it again gives overflow error. I can't understand how this datatype and its precision and scale is interpreted by sql server.
Update:
Strange thing is that when inserting value numeric(9,3) only allows to enter values like 1234.123 but when editing the row i can enter value 123456.123. don't know what's happening here :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
decimal(9,3)
对于123456.123
应该可以正常工作,请重新检查!执行
没有报错。此数据类型允许小数点左侧 6 位数字和小数点右侧 3 位数字。
decimal(9,3)
should work fine for123456.123
please recheck!Executing
gives no error. This datatype allows 6 digits to the left of the decimal point and 3 to the right.