可能重复:
Why can't decimal numbers be represented exactly in binary?舍入误差在C++
语言C++ 我声明数组和我保存号(类型双)在它。然后我开始比较数组中每个两个元素之间的差异。 例如
a[1] = 0.05
a[2] = 0.1
a[3] = 0.15
所以 当i执行以下
if(a[3] - a[2] == a[2] - a[1])
条件为假!!
调试后,我发现,0.05保存在阵列中作为 0.0499 ...... 993 和情况类似与0.10和0.15
我怎样才能解决这个问题?
一个有用的阅读:[每个计算机科学家应该知道什么关于浮点运算](http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html) – eldarerathis 2011-05-09 14:51:52
Eleveny- bazillion重复。 – 2011-05-09 14:52:00
参见:http:// floating-point-gui。de/ – hammar 2011-05-09 14:52:29