由于double类型或float类型都是有精度的,其实都是取的近似值,因此有个偏差。和一个很小的数好比0.00000001(1e-8)比较就是为了在这个偏差范围内进行比较。 举个例子如double b = 0.123456多是0.1234561的四舍五入后获得的结果。最后的0.0000001就表示偏差范围了。 doubel a; if ( a>-0.0000001 && a< 0.000001 )对。 而 if( a == 0 )不对!float