当前位置:  开发笔记 > 编程语言 > 正文

为什么这个问题的结果不同?

如何解决《为什么这个问题的结果不同?》经验,为你挑选了1个好方法。



1> Noldorin..:

我猜你在Jon Skeet的Brainteasers页面上找到了这个问题?这些问题的答案中列出并说明这里在同一网站上.

作为参考,这是从该页面复制的答案.


3)愚蠢的算术

计算机意味着擅长算术,不是吗?为什么打印"假"?

double d1 = 1.000001; double d2 =
0.000001; Console.WriteLine((d1-d2)==1.0);

答案:此处的所有值都存储为二进制浮点.虽然1.0可以准确存储,但1.000001实际存储为1.0000009999999999177333620536956004798412322998046875,0.000001实际存储为0.000000999999999999999954748111825886258685613938723690807819366455078125.它们之间的差异并不完全是1.0,实际上差异也不能完全存储.


推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有