有关 float的一个问题

请教大神们一个问题 :float共32位23位为尾数位根据0舍1入的规则当24位为1的时候第23位要+1这时候float中存储的数会比正确的数大上一些假设float为8000023那么正确的数小上一些为7999986这样有效位数不是6位了嘛

所谓有效数字的含义是,真实值和表示值的误差在1/2的N次方之内。(这里N=23)换算成10进制,2的10次方近似10的3次方,大致是6位,其实不是刚好6位。

注意是之内,而不是刚好误差这么多。第23位+1也好,-1也好,对结果的影响肯定在2的23次方-1以内。这就是精度的含义。