我有一个项目,用户可以在文本框中输入小数。现在,我将该值尝试将其解析为可为null的float变量,然后将其传递给tableAdapter以插入或更新DB。

现在这是一个令人困惑的地方,如果我给它一个值.24,那就是传递给tableAdapter的值,但是,当我查看保存到数据库的内容时,它将转换为0.239999994635582。

我调试了它直到TableAdapter的insert调用,并且将其传递为.24的值。我的SQL Server数据库列具有浮点类型。

知道为什么会这样吗?我需要切换到十进制吗?

谢谢

最佳答案

解决的办法是2表示的内部力量
浮点数。

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

在此处阅读更多信息:IEEE 754 Floating point numbers

切换到十进制将在此处起作用,但也会影响性能。
(比浮动速度慢大约十倍,但您可能永远不会注意到它)

关于c# - TableAdapter执行奔腾数学,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11649377/

10-10 22:50