C# 从SQL server获取数据时出现双精度错误
我试图从SQL视图中获取一个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
实数
数字
但在执行查询后,它将把数字从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位数”。