float的精度

首先,百度到的官方解释是:

float具有 4 个字节,包括一个符号位、一个 8 位二进制指数和一个 23 位尾数。由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。

2^23 = 8388608,一共七位,这意味着最多能有七位有效数字。需要注意的是,这个七位是包括整数位在内的所有位数。举个例子,假设小数点前有三位,那它只能精确到小数点后四位。

float a=0.123456f;

float b=789.123456f;

 打印a和b的结果分别是0.123456和789.1235

浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,因为它是不变的,故不能对精度造成影响。所以我们常说float能精确到小数点后六位,是在其整数位为1的情况下才成立。

猜你喜欢

转载自blog.csdn.net/u011175163/article/details/129176034