在SQLite问题中保存浮点数?

时间:2013-05-02 09:01:24

标签: sql sqlite floating-point precision rounding

我尝试将一些浮点数保存到SQLite表中(这是第一次),但存储的值与我想要保存的值不同。它们几乎就是我保存的数字。这需要我在选择使用查询或填充到DataTable后对数字进行舍入或截断,这可能导致舍入结果与实际保存的数字版本略有不同。

例如,我尝试保存此浮点数7.64,但实际保存的值为7.6399998664855957,相同的6.1(6.0999999046325684),4.74(4.7399997711181641),5.76(5.7600002288818359)......

你能给我一些解决方案吗?舍入不是我想要的,我只想准确保存用户输入的内容。

非常感谢你!

更新

经过一些测试后,我想补充说明问题似乎只有在我向表中添加新值时才会发生,添加后,如果我更改值(当然是通过我的应用程序),它们会被准确保存我输入了什么。以下是添加新项目的代码:

DataRow dr = myDataTable.NewRow();
dr["myFloatColumn"] = float.Parse(myTextBox.Text.Trim());
myDataTable.Rows.Add(dr);
myDataAdapter.Update(myDataTable);
myDataTable.AcceptChanges();

谢谢!

0 个答案:

没有答案