输出疑惑
#include "stdio.h"
main()
{
float a=123456789e5,b;
b=a+20;
printf("%f\n",b);
}
输出:12345679020032.000000,不懂,我觉得应该是:12345678900020.000000,请较详细的解释一下。
[解决办法]
从左算起第一个1后有43位,是为了算指数域位的偏置量
在楼上例子 能完整表示的有效小数域位是01100111010011100111100111000101011001有38位