Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从SQL server获取数据时出现双精度错误_C#_Sql Server - Fatal编程技术网

C# 从SQL server获取数据时出现双精度错误

C# 从SQL server获取数据时出现双精度错误,c#,sql-server,C#,Sql Server,我试图从SQL视图中获取一个实数数字 但在执行查询后,它将把数字从6728873.3四舍五入到6728873.5 为什么会发生这种情况,有什么办法可以解决吗 我曾尝试使用DataReader、Linq2SQL和ServiceStack.ORMLite获取数据,但都不起作用 var lConnection = new SqlConnection(ConnectionString); const string cmd = "SELECT [Origin],[X],[Y] FROM

我试图从SQL视图中获取一个
实数
数字

但在执行查询后,它将把数字从
6728873.3
四舍五入到
6728873.5

为什么会发生这种情况,有什么办法可以解决吗

我曾尝试使用
DataReader
Linq2SQL
和ServiceStack.ORMLite获取数据,但都不起作用

 var lConnection = new SqlConnection(ConnectionString);
        const string cmd = "SELECT [Origin],[X],[Y] FROM [SpiderDB61].[dbo].[View_Addresses_AddressNames]" + 
          " where Origin = 5 and X = -26262.5 and Y = 6728873.3";
        var lSQLCommand = new SqlCommand(cmd, lConnection);
        lConnection.Open();

        SqlDataReader lReader = lSQLCommand.ExecuteReader();
        object a;
        object b;
        object c;
        while (lReader.Read())
        {
            a = lReader[0];
            b = lReader[1];
            c = lReader[2]; // <-- this will be 6728873.5, not 6728873.3
        }
var lConnection=新的SqlConnection(ConnectionString);
const string cmd=“从[SpiderDB61]。[dbo]。[View\u Addresses\u AddressNames]中选择[Origin]、[X]、[Y]”+
“其中原点=5,X=-26262.5,Y=6728873.3”;
var lSQLCommand=新的SqlCommand(cmd,lConnection);
lConnection.Open();
SqlDataReader lReader=lSQLCommand.ExecuteReader();
对象a;
对象b;
对象c;
while(lReader.Read())
{
a=lReader[0];
b=lReader[1];

C= LeLead [2 ];//

<代码>实际< /COD> >代码>浮点(24),它给出了大约.<代码> 6728873.3 < /COD> 8个数字。基本上,你在“可靠/精确”的限制下用于<代码> Reale。你应该考虑不同的数据类型;也许<代码>浮点< /C> >(默认为<代码>浮点(53)< /代码>),可能是十进制(x,y)

-取决于此值是离散的还是连续的。

实的
是浮动的(24)< /代码>,它给出了大约.<代码> 6728873.3代码/代码> 8个数字。基本上,你是在“可靠/精确”的限制下用于<代码>现实>代码>。你应该考虑一个不同的数据类型;也许<代码>浮点< /代码>(默认为<代码>浮点(53)< /代码>),也许<代码>十进制(x,y)。-取决于此值是谨慎的还是连续的。

将代码显示为文本,而不是图像。我将其显示为图像以突出问题@SonerGönül将代码显示为文本,而不是图像。我将其显示为图像以突出问题@SonerGönül,但它为什么会返回。5那么,为什么不是just 6728873?@BjarkiHeiðar你已经到了极限;它到底能做什么取决于尾数的复杂情况;有些值可以更精确地表示;有些值不能。这不是“你得到7位数”。但它为什么会返回。5那么,为什么不只是6728873呢?@BjarkiHeiðar你已经到了极限;它到底能做什么取决于尾数的复杂情况;有些值可以更精确地表示;有些值不能。这不是“你得到7位数”。