2

我有一个项目,用户可以在文本框中输入小数。现在我获取该值并尝试将其解析为一个可为空的浮点变量,我将其传递给 tableAdapter 以插入或更新数据库。

现在这是它变得奇怪的地方,如果我给它一个 0.24 的值,这就是传递给 tableAdapter 的值,但是,当我查看保存到数据库的内容时,它被转换为 0.239999994635582。

我将它调试到 TableAdapter 的插入调用,它被传递了一个 0.24 的值。我的 SQL Server 数据库列具有浮点类型。

关于为什么会发生这种情况的任何想法?我需要切换到十进制吗?

谢谢

4

1 回答 1

0

解决方案是浮点数的 2 表示的内部幂。

一些小数值不能很好地表示。

在此处阅读更多信息:IEEE 754 浮点数

切换到十进制在这里会起作用,但也会对性能产生影响。(比 float 慢 10 倍,但你可能永远不会注意到它)

于 2012-07-25T12:13:12.913 回答