我一直在想,为什么当计算机应该给出准确的答案时,花车并不是真正的敏捷。我在某本书的某本书中读到,最好将变量与我们想要的值进行比较,因为计算值可能并不总是我们所期望的整数。机器如何解决这些分歧?对网站的任何链接,欢迎:)为什么在计算浮动和双打时会出现错误?
1
A
回答
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的十进制数),这将成为一个无限级数的井。
因此,有时你不会得到最准确的数字。
相关问题
- 1. 为什么在计算几个凸包的时候会出现Qhull错误?
- 2. 为什么在打印浮动值时出现字符'e'
- 3. 使用[]运算符时为什么会出现编译错误?
- 4. 打印时为什么会出现分段错误?
- 5. 打开Eclipse时,为什么会出现错误对话框?
- 6. 为什么会出现这个双渲染错误?
- 7. JavaScript浮动计算错误
- 8. 为什么在使用printf时会出现运行时错误?
- 9. 为什么会出现分段错误?
- 10. 为什么会出现语法错误?
- 11. 为什么会出现段错误11
- 12. 为什么会出现错误?
- 13. 为什么会出现名称错误?
- 14. 为什么会出现MySQL错误1064
- 15. 为什么会出现错误?
- 16. 为什么会出现分析错误?
- 17. 为什么会出现分段错误?
- 18. 为什么会出现这个错误?
- 19. 为什么会出现以下错误?
- 20. 为什么Gradle会出现此错误?
- 21. 为什么会出现分段错误?
- 22. GL_LINEAR_MIPMAP_LINEAR为什么会出现INVALID_ENUM错误?
- 23. 为什么在返回结构函数时出现计算错误
- 24. 在C#中,为什么我得到“无法抛出双浮动错误”?
- 25. 为什么浮动崩溃不会出现在固定位置
- 26. 为什么在IPAD上测试时会出现此错误?
- 27. 为什么在输入“else if”时会出现该错误?
- 28. 为什么在使用绘图时会出现语法错误?
- 29. 为什么在使用form_for时会出现attribute_methods错误?
- 30. 为什么在SQL Server中使用ROW_NUMBER时会出现错误?
也许你可以在这篇文章中找到有价值的东西:http://stackoverflow.com/questions/872544/precision-of-floating-point – DeCaf