(C#)如何存储double数据以至于不损失精度?
double类型存储的变量例如:-3.5738402433531764。我放入datatable中就少了最后两位。变成-3.57384024335318。后来我尝试直接使...
double类型存储的变量例如:-3.5738402433531764。我放入datatable中就少了最后两位。变成-3.57384024335318。后来我尝试直接使用double.tostring()也发现少了最后两位。另外我是想把double数据存入数据库,这时数据库选用何种类型来存储该数据是比较好的。
展开
2个回答
展开全部
double d=-3.5738402433531764;
string sql = "update Table1 set [Number]=@p1 where ID=1";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=.\\SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|\\Database.mdf;User Instance=true";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter sp = new SqlParameter("@p1",SqlDbType.Decimal,38,18);
sp.Value=d;
cmd.Parameters.Add(sp);
try
{
conn.Open();
return(cmd.ExecuteNonQuery());
}
catch (Exception)
{
return -1;
throw;
}
finally
{
conn.Close();
}
Number字段建议用Decimal(38,19)类型存储。
C#程序中查询数据时建议用Double或Decimal。
string sql = "update Table1 set [Number]=@p1 where ID=1";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=.\\SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|\\Database.mdf;User Instance=true";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter sp = new SqlParameter("@p1",SqlDbType.Decimal,38,18);
sp.Value=d;
cmd.Parameters.Add(sp);
try
{
conn.Open();
return(cmd.ExecuteNonQuery());
}
catch (Exception)
{
return -1;
throw;
}
finally
{
conn.Close();
}
Number字段建议用Decimal(38,19)类型存储。
C#程序中查询数据时建议用Double或Decimal。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |