3

如果我在 SQL 2008 R2 中有一个表,其类型为 Decimal(35,18) 的可为空列,并将其拉入 edmx。我可以成功保存到数据库而不会出现转换溢出错误的最大十进制值是

79,228,162,514

这很奇怪,因为它匹配 Decimal 的上限(如果您比较的数字不是实际值)

http://msdn.microsoft.com/en-us/library/system.decimal.maxvalue.aspx

79,228,162,514,264,337,593,543,950,335

但是我什至没有接近最大 28 位数字。

我提交了一个错误,因为我相信它是......但我不敢相信它会是一个巨大的问题?

http://entityframework.codeplex.com/workitem/522

4

1 回答 1

1

这是设计使然。

您指定了比例 18,因此 79,228,162,514 被解释并存储为 79,228,162,514,000,000,000,000,000,000 x 10^-18

如果再增加整数部分,它将大于 CLR 十进制 MaxValue 79,228,162,514,264,337,593,543,950,335

于 2012-10-08T20:56:28.947 回答