gpt4 book ai didi

c# - 如何使用 Entity Framework 6.x 和浮点列确保浮点精度

转载 作者:行者123 更新时间:2023-11-30 15:26:39 24 4
gpt4 key购买 nike

我试图理解为什么似乎无法为 float/double 值精确设置精度。

但是 .NET 允许我对此类值使用 Math.Round,检查员会准确显示我四舍五入和/或输入的内容。

每当我尝试将这样的值保存回表时,我都会得到一个包含 86,609001159668 而不是 86,609 的语句

现在输入的值似乎可以正确地到达表格。

我可以更改代码中的任何内容来实现此目标,但不能更改列类型本身。

有什么想法吗?

谢谢,

克里斯

最佳答案

.NET float 不是十进制精确的。唯一精确到十进制的 BCL 十进制类型是 decimal . floatdouble是二进制“小数”,所以无法表示 86.609正是在他们身上。使用 Math.Round简单地使值足够接近 86.609它在作为 ToString 的一部分的舍入过程中打印出来.

因此,如果您想要精确的小数点小数,请使用 decimal在 .NET 中。

关于c# - 如何使用 Entity Framework 6.x 和浮点列确保浮点精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28981611/

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