我有一个C#程序提取一些数据并放入SQL Server
public void UpdateElementInfo()
{
var _db = new MyEntities();
var mylist = _db.elements.Where(x => x.id != null);
IList<ele> plist = mylist.ToList<ele>();
foreach (ele p in plist)
{
var query = from myRow in dtrr.AsEnumerable()
where myRow.Field<string>("num") == p.id.ToString()
select myRow;
var rrrr = query.OrderByDescending(x => x.Field<DateTime>("updated_at")).FirstOrDefault();
{
p.my_interested_param = (double?)rrrr.Field<decimal?>("parameter") * 100;
所以,如果我{i}这个my_interested_param Console.WriteLine()
,它会按预期显示,例如4.12。但是,当我查看SQL Server时,这个数字实际上转换为4.1200000000000003。而且,这种转换不会发生在所有行上。所以这对我来说很奇怪。
我读到这可能是由于选择存储此号码的FLOAT
数据类型。但是,如果我们必须使用FLOAT
来存储它,我们可以做些什么。