这只是范围,但是单精度的,数百没实际这么多,什么叫精度?计算机那是0,1表示的,假设置你的单精度度是从-20到+20,整数是-10到10,而单精度的数不一定能取到5.4,也不一定能到6.5,这就是知精度所在,这不是连续数,是跳跃的,但是整数道就是按整数连续的!
再说个最简单的例吧,你班版上的人最矮是1.4米,最高是2.2米;而我班的权最矮是1.6,是高是1.8,并不代表我班上的人比你班的人少!
单精度是近似值他的表现形式不是各个位简单的乘方,而是有来一个格式的
符号位S(sign)
-
1bit
0代表正号,1代表负号。
指数位E(exponent)
-
8bit
E的取值范围为源0-255(无符号整数),实际数值e=E-127。
尾数位M(mantissa)
-
23bit
所以你知看到的一般都是-3.4028235E+38之类的小于255的整数加上7位小数加上指数的形式。
你监视一下float
b
=
11111111111111;看看是不是1.11111108E+13
系统自己把它改道成近似值了,而且格式也有所改变