判断浮点数与0的大小关系时,一般不直接让浮点数与“0”比较。
因为浮点数在计算机中存储时存在误差,如0本身可能会被存为0.9999976(随便编的一个数据,可能不太准确,理解意思就可以了,就像你,在用计算机算1/3*3的时候,最终结果可能是0.999999一样),故浮点数直接与0比较大小时,有可能存在误差。基于此点,我们一般让浮点数与一个很接近于0的数来做比较,如1e-6(亲测有效)。
可是为什么是1e-6呢?1e是表示1*e吗?很显然不是。
在经过一波问答过后,CSDN上友好的朋友给了我回答。
1e-6其实是科学技术法的一种表达方式,表示10的-6次幂,即0.000001,在以1e-6为误差范围内比较浮点数与0的大小,能够一定程度上消除计算机浮点数精度产生的问题。