插入十进制数值到SQL表格时发生了溢出错误。

4

在 MS SQL 中遇到了“算术溢出错误,将数字转换为数字类型时”的错误。以下是该表:

CREATE TABLE [Percentages]
(
    [enabled] bit,
    [name] nvarchar(150),
    [percent] decimal(5,5)
)

以下是我尝试插入的内容:

INSERT INTO [Percentages] ([enabled], [name], [percent])
VALUES (1,'Test',2.0)

如果十进制范围是00000.00000到99999.99999,那么为什么2.0会给我错误信息?数字“2”也会出现相同的错误。

2
(5,5) 意味着总共有 5 位数字,其中 5 位为小数。 (即从 -0.99999 到 0.99999。)您需要使用 decimal(10,5) - jarlh
太好了,谢谢!请随意将其添加为答案。 - Jan Trindal
2个回答

3

decimal(5,5) 表示总共有 5 位数字,其中 5 位是小数。(即从 -0.99999 到 0.99999。)

你需要的是 decimal(10,5)


0

Decimal(5,5) 表示 - Decimal(p,s),其中 s 是小数点右侧的数字位数,p 是要存储在小数中的总数字位数。将 s 从 p 中减去即可得到小数点左侧的数字位数。

在您的情况下 - Decimal(5,5) 允许小数点左侧没有数字。因此会引发错误。

尝试使用: decimal(10,5) 或其他基于您的最大预期值的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接