2011-10-07 33 views
1

我一直在想,为什么当计算机应该给出准确的答案时,花车并不是真正的敏捷。我在某本书的某本书中读到,最好将变量与我们想要的值进行比较,因为计算值可能并不总是我们所期望的整数。机器如何解决这些分歧?对网站的任何链接,欢迎:)为什么在计算浮动和双打时会出现错误?

+0

也许你可以在这篇文章中找到有价值的东西:http://stackoverflow.com/questions/872544/precision-of-floating-point – DeCaf

回答

3

乔恩斯基特这里提到它(向下滚动,直到你看到“双d = 0.3;”画上一个幻灯片): http://msmvps.com/blogs/jon_skeet/archive/2009/11/02/omg-ponies-aka-humanity-epic-fail.aspx

更详细的答案在这里: http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html

+0

链接http://msmvps.com/blogs/jon_skeet/archive/ 2009/11/02/omg-ponies-aka-humanity-epic-fail.aspx不再可用。不过,我通过https://web.archive.org访问它(2010年8月14日的快照) –

0

一个简单的答案就是计算机使用有限的数字来表示一个数字。

如果您试图表示十进制数1/7,那么它将是0.14285714 ...等等。 计算机也发生同样的情况,即试图用二进制表示1/10(0.1的十进制数),这将成为一个无限级数的井。

因此,有时你不会得到最准确的数字。

相关问题