特定公式的小数位数不正确

时间:2011-11-18 20:58:34

标签: .net visual-studio-2010 .net-4.0

我遇到了一个问题,我可以在Visual Studio 2010中的三个完全不相关的项目中重现这个问题,因此我认为这与.NET框架有关。

当我在项目中设置断点时,在下面的文本中输入以下文本进行评估:

“12500 + 6217.680 + 172.24”

我收到了这个:

“18889.920000000002”

请注意错误的小数位数。

我希望看到这个: “18889.92”

我可以在观察窗口中输入它,并且它可以正确评估。但是,不是在立即窗口。

是什么给出了?

2 个答案:

答案 0 :(得分:2)

这是浮点数学的正常行为。我建议阅读What Every Computer Scientist Should Know About Floating-Point Arithmetic

如果要以特定精度显示此值,则应使用value.ToString(format)以指定的精度格式化结果。

答案 1 :(得分:0)

如果使用m后缀表示数字是小数,而不是双数,结果将是您所期望的(至少在这种情况下)。

12500m + 6217.680m + 172.24m = 18889.92