我正在尝试real
从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
}
real
是的float(24)
,这样大约 可以达到7位数字。6728873.3
是8位数字。基本上,您处于对的可靠/精确的限制real
。您应该考虑另一种数据类型。也许float
(默认为float(53)
),也许decimal(x,y)
-取决于此值是谨慎的还是连续的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句