float表示范围为啥和int一样多

为啥float也是4个字节,但是他的表示范围就比int大,而且int也是4个字节啊,那他们的全部可能不是只有2的28次方种可能嘛

int类型是直接以二进制形式保存,而float类型是以指数形式保存。

因为int表示的数据是等间距的,一共有2的32次方种可能,步长为1,每种取值代表一个整数
但是float类型存储数据的间隔不是等间距的,而是在0的附近间距小,在远离0的位置间距大,float通过这种不等间距的分布,既扩大了范围也表示了小数。
这样就导致了float类型的精度问题,比如我给一个float类型变量分别赋值为 4294967244 和 4294967295 ,再次输出时都变成了 4294967296,因为超过了精度,所以只能找最接近的数字代替
详细解释见博客https://blog.csdn.net/albertsh/article/details/92385277

float类型十进制有效数字6位