我在jonskeet博客上读过,现在我想知道答案



可能重复:
浮点不准确性示例
浮点比较

计算机应该擅长算术,不是吗?为什么这个打印的是"假"?

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

或者在c sharp或java 中会有不同的结果

我认为结果可能会因您使用的处理器和语言而异
这是因为浮点数(通常(是用一些试图表示该分数的比特来存储的,但可能会有一些(非常小的(差异
所以当你做(d1-d2)时,你可能会得到一个非常接近1.0的数字,但不完全是1.0!!

相关内容

最新更新