我觉得这里有一个简单的解决方案,但我就是找不到它。我有一个常量字面值0.05。在我的程序的整个执行过程中,我发现double常量并没有被视为0.05,而是被视为0.049999...etc。
为什么会发生这种情况,我如何防止它发生?
提前感谢您的帮助!
-Matt
PS -我会发布一个快照来提供更多的信息,但显然我不能,因为我是一个新用户……老鼠。
发布于 2012-04-17 12:53:07
没有0.05的二进制表示法,因为1/20不是2的幂,所以浮点(双精度)表示法只能近似它。另一方面,0.5可以精确地表示出来。
如果v是文字,那么(v == 0.05)应该是'true‘
https://stackoverflow.com/questions/10181308
复制相似问题