将 float 插入 SQL Server 数据库时,我得到:
5.03000020980835
这不是正在收集的确切值。
我是如何收集这个浮标的?通过将文本框控件转换为float
我目前如何处理数据:
private void PayRateTextBox_TextChanged(object sender, EventArgs e)
{
PayRateBox = float.Parse(PayRateTextBox.Text);
}
上面是为当前更新的文本框设置一个内部 float :
private float PayRateBox = 0;
然后插入为:
string Query = "INSERT INTO shifts (ShiftDate,WeekNumber,Hours,PayType,Rate) " +
"VALUES(@Date, @WeekNo, @Hours, @PayType, @Rate)";
并通过绑定(bind)参数绑定(bind)到查询:
CMD.Parameters.Add("@Rate", SqlDbType.Float);
CMD.Parameters["@Rate"].Value = PayRate;
TextBox 中的默认文本设置为 5.03,因此沿线的某处附加了其他数据以使整体值增加。我试图追踪发生这种情况的位置,但无法找出发生这种情况的方式和原因。也许我忽略了什么?
最佳答案
float 的精度限制为 7 位有效数字。在您的例子中,它表示 5.030000
。其余小数位的值未定义。
关于C# Float 不作为精确值插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25538900/