gpt4 book ai didi

C# Float 不作为精确值插入

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:27 25 4
gpt4 key购买 nike

将 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。其余小数位的值未定义。

要提高精度,请使用 double精度为 15-16 位有效数字或 decimal 28-29位有效数字。

关于C# Float 不作为精确值插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25538900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com