내 SQL Server
에는 FloatValue
Float
데이터 유형의 열이있는 테이블이 있습니다.
나는이 방법과 WCF
서비스에서이 값을 업데이트합니다잘못된 플로트 데이터가 삽입되었습니다.
public int UpdateConfig(float value)
{
try
{
using (SqlConnection conn = GetConnection(DbName.Temp))
{
conn.Open();
string command = @"UPDATE ConfigTable SET FloatValue = @value";
using (SqlCommand cmd = new SqlCommand(command, conn))
{
cmd.Parameters.AddWithValue("@value", value);
int res = cmd.ExecuteNonQuery();
return res;
}
}
}
catch (Exception ex)
{
return 0;
}
}
내 문제는되도록 같은이 방법을 호출 할 때 :
UpdateConfig(1.1);
과 같은 select
문 :
SELECT ConfigTable.FloatValue From ConfigTable
을
은 다음 값을 반환합니다. 1.10000002384186
이 값을 SSMS
에서 직접 업데이트하면 올바른 데이터가 업데이트되고 있습니다.
어떻게 해결할 수 있습니까?
아마도 코드에서'double'을 사용해야합니다. 자세한 내용은 http://stackoverflow.com/a/1209190/858757을 참조하십시오. – Silvermind
가능한 [SQL 서버에서 숫자, 부동 소수점과 소수 사이의 차이] (http://stackoverflow.com/questions/1056323/difference-between-numeric-float-and-decimal-in-sql-server) – CodeCaster