TableAdapter执行Pentium Math

时间:2012-07-25 12:10:28

标签: c# asp.net sql-server

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

现在这里它变得很奇怪,如果我给它一个值为.24,那就是传递给tableAdapter的东西,但是,当我查看保存到数据库的内容时,它会被转换为0.239999994635582。 / p>

我将它调整为TableAdapter的插入调用,并且传递的值为.24。我的SQL Server数据库列的类型为float。

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

由于

1 个答案:

答案 0 :(得分:0)

解决方案是2代表的内部力量 漂浮数字。

某些小数值无法很好地表示。

在此处阅读更多内容:IEEE 754 Floating point numbers

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