SQL Server Express 2008 R2中数字类型的精度和小数位数

发布于 2024-12-04 00:59:58 字数 365 浏览 4 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

俯瞰星空 2024-12-11 00:59:58

decimal(9,3) 对于 123456.123 应该可以正常工作,请重新检查!

执行

declare @d decimal(9,3) = 123456.123 

没有报错。此数据类型允许小数点左侧 6 位数字和小数点右侧 3 位数字。

decimal(9,3) should work fine for 123456.123 please recheck!

Executing

declare @d decimal(9,3) = 123456.123 

gives no error. This datatype allows 6 digits to the left of the decimal point and 3 to the right.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文