浮点数在内存中的存储机制和整型数不一样,其有舍入误差,在计算机中用来近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到。因此浮点数在运算过程中通常伴随着因为无法精确表示而进行的近似或舍入。这种设计的好处是可以在固定的长度上存储更大范围的数。
由于计算机表示小数(float和double)都有误差,我们不能直接用等号(==)来判断两个小数是否相等,而是只能判断他们之差的绝对值是不是在一个很小的范围内,如0.0000001.如果两个数相差很小,就可以认为他们相等。