我在 C# 中有一个 double 值,我想将它们放入数据库中。
问题是我已经尝试了数据库中的所有格式,但我仍然得到一个数字来签署 DOT。例如,如果我有一个数字 45.548,它将在数据库中保存为 45 当我调试代码时,我可以看到该值实际上是作为 45.548 发送的。
这是我的代码,因此您可以查看可能出了什么问题:
MySqlConnection con = null;
MySqlCommand cmd = null;
con = new MySqlConnection("server=localhost;database=Data_GPS;uid=root;pwd=******");
con.Open();
cmd = new MySqlCommand("insert into Data values (null, ?Parname , ?Parname2, ?Parname3);", con);
cmd.Parameters.AddWithValue("?Parname", deciLat);
cmd.Parameters.AddWithValue("?Parname2", deciLon);
cmd.Parameters.AddWithValue("?Parname3", time);
cmd.ExecuteNonQuery();
con.Close();
我试图用 float、double、decimal、varchar 更改数据库中的格式,但我仍然没有得到正确的数字。
谢谢
编辑:
这就是我填充十进制值的方式:
string[] arrLon = Lon.Split(new char[] { '°', '"' }, StringSplitOptions.RemoveEmptyEntries);
double dblLon = double.Parse(arrLon[0]) + double.Parse(arrLon[1], new System.Globalization.NumberFormatInfo()) / 60;
double deciLon = arrLon[2] == "E" ? dblLon : -dblLon;
string[] arrLat = Lat.Split(new char[] { '°', '"' }, StringSplitOptions.RemoveEmptyEntries);
double dblLat = double.Parse(arrLat[0]) + double.Parse(arrLat[1], new System.Globalization.NumberFormatInfo()) / 60;
double deciLat = arrLat[2] == "N" ? dblLat : -dblLat;