我猜你在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,实际上差异也不能完全存储.