0

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

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

在此先感谢您的帮助!

-马特

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

4

1 回答 1

1

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

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

于 2012-04-17T04:53:07.097 回答