文字值的奇怪,意外变化(double类型)

时间:2012-04-16 20:35:18

标签: c# visual-studio-2010 double constants

我觉得这里有一个简单的解决方案,但我似乎无法找到它。我的字面值为0.05。在我的程序执行过程中,我发现双常数不是0.05,而是0.049999 ......等等。

为什么会发生这种情况,我该如何预防呢?

提前感谢您的帮助!

-Matt

PS - 我会发布快照以提供更多信息,但显然我不能,因为我是新用户......老鼠。

1 个答案:

答案 0 :(得分:1)

没有0.05的二进制表示,因为1/20不是2的幂,所以浮点(双精度)表示仅近似它。另一方面,0.5可以准确表示。

如果v是你的文字,那么(v == 0.05)应该是'true'