为什么在计算浮点数和双打数时会出现错误?

时间:2011-10-07 17:04:52

标签: floating-point double

我总是想知道为什么当计算机应该给出精确的答案时,花车不是真正的准确。我在一本书中读到,最好将变量与我们想要的值周围的数字进行比较,因为计算值可能并不总是我们预期的整数。机器如何计算这些部门?欢迎任何指向网站的链接:)

2 个答案:

答案 0 :(得分:3)

Jon Skeet在这里提到它(向下滚动,直到你看到“双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

答案 1 :(得分:0)

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

如果你试图表示即十进制数字的1/7,它将是0.14285714 ......等等无限。 对于计算机也是如此,即试图用二进制表示数字1/10(十进制0.1),这也成为一个无穷大的系列。

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