浮点数就是所谓的小数,在计算机里,最典型的是32位浮点数和64位浮点数。

  其中,32位浮点数使用32个比特,共4个字节来表示一个小数。这32个比特以类似于科学计数法的形式来表达一个浮点数,按照IEEE 754标准,其数学表示为:


$$ \pm M\times 2^{E} $$

  如下图所示,最高的1位(第31位)用做符号位,接着的 8 位(第23-30位)是指数E,剩下的 23 位(第0-22位)为有效数字 M。

float32

  相对于32位浮点数,64位浮点数类型使用8个字节来存储一个浮点数,它的储值范围以及精度都会高一些。习惯上,我们称32位浮点数为单精度浮点数,64位浮点数为双精度浮点数。所有的浮点数类型都是有符号的。

  受限于有效数字的位数,浮点数的精度受到限制,会存在微小的误差。

  以上为32比特浮点数的内存结构,64位及128位浮点数对象的基本结构与此类似,细节请查询IEEE 754标准。