C# 对于SQL Server的int数据类型,获取数值精度

C# 对于SQL Server的int数据类型,获取数值精度,c#,.net,sql-server,linq,ado.net,C#,.net,Sql Server,Linq,Ado.net,我正在从SQL Server获取以下列的详细信息: Size Precision Scale 但我注意到,对于int,我的精度是10,但当我做一些研究时,我找不到任何与int相关的东西,int数据类型的精度是10,或者在SQLServerManagementStudio中 所以我不知道在int数据类型的情况下,10是如何精确的 表: 截图: 代码: 精度是指一个数字可以表示的有效小数位数 与C中的int数据类型一样,int数据类型的范围从-2147483648到2147483647,因此它最多

我正在从SQL Server获取以下列的详细信息:

Size
Precision
Scale
但我注意到,对于int,我的精度是10,但当我做一些研究时,我找不到任何与int相关的东西,int数据类型的精度是10,或者在SQLServerManagementStudio中

所以我不知道在int数据类型的情况下,10是如何精确的

表:

截图:

代码:

精度是指一个数字可以表示的有效小数位数

与C中的int数据类型一样,int数据类型的范围从-2147483648到2147483647,因此它最多可以有10个有效的十进制数字


因此,int的精度始终为10。

如果查看,您会发现它可以存储的最大值最多需要10位十进制数字来表示。因此,如果有人坚持要给出一个整数的精度,那么提供这个答案并不是不合理的。32位整数的最大位数是10。19英镑一张bigint@Damien_The_Unbeliever:那么,对于int数据类型,我的输出正确为10???@TimSchmelter:先生,我想问你一件事,为什么你删除了我这个问题的答案,尽管它是正确的。我正要将它标记为接受答案,但你删除了它,尽管它不是很有用。只有在数据类型可能发生变化的情况下(如SQL decimal数据类型),它才是真正有用的数据。非常感谢您帮助我澄清我的疑问。请继续这样帮助我
String[] columnRestrictions = new String[4];
columnRestrictions[0] = 'MyDb';
columnRestrictions[1] = 'dbo';
columnRestrictions[2] = 'Employee';

using (SqlConnection con = new SqlConnection("MyConnectionString"))
{
    con.Open();
    var columns = con.GetSchema("Columns", columnRestrictions).AsEnumerable()
         .Select
          (
                 t => new 
                 {
                     Name = t[3].ToString(),
                     Datatype = t.Field<string>("DATA_TYPE"),
                     IsNullable = t.Field<string>("is_nullable"),
                     Size = t.Field<Int32?>("character_maximum_length"),
                     NumericPrecision = t.Field<int?>("NUMERIC_PRECISION"),
                     NumericScale = t.Field<Int32?>("NUMERIC_SCALE")
                 }).ToList();