C#浮点值不作为精确值插入
本文关键字:插入 不作为 | 更新日期: 2023-09-27 18:19:37
当将浮点插入SQL Server数据库时,我得到:
5.03000020980835
这不是正在收集的确切值。
我是怎么收集这个浮子的?通过文本框控件转换为浮动
我目前如何处理数据:
private void PayRateTextBox_TextChanged(object sender, EventArgs e)
{
PayRateBox = float.Parse(PayRateTextBox.Text);
}
以上是对当前更新的文本框设置内部浮动,该文本框设置为:
private float PayRateBox = 0;
然后插入为:
string Query = "INSERT INTO shifts (ShiftDate,WeekNumber,Hours,PayType,Rate) " +
"VALUES(@Date, @WeekNo, @Hours, @PayType, @Rate)";
并通过绑定参数绑定到查询:
CMD.Parameters.Add("@Rate", SqlDbType.Float);
CMD.Parameters["@Rate"].Value = PayRate;
TextBox中的默认文本设置为5.03,因此沿线的某个位置会附加其他数据,以使总值增加。我试图追踪这是在哪里发生的,但无法找出这是如何发生的以及为什么发生的。也许我忽略了什么?
浮点的精度限制为7位有效数字。在您的情况下,它意味着5.030000
。小数点后几位的值未定义。
为了提高精度,请使用精度为15-16位有效数字的双精度或精度为28-29位有效数字。