大家应该都知道小数转二进制的方法吧,乘2取整,得到积,将积的整数部分取出,再用余下的小数部分乘2,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数为0,或者达到所要求的精度为止。
可以看到每次乘2都会取出一个整数,将这些整数顺序排列就能得到小数的二进制表示。上面的例子乘2最终可以会停止,但是如果换一个数,例如0.56,我们再来看一下。
如果我们一直乘2下去,会得到无限个整数的序列。但是,计算机中不可能提供无限个bit位去存储它们,因而造成了精度损失。但是又为了尽可能保持数据的精度,提供了两种数据类型。float(单精度)和double(双精度),我们需要根据需求去选择浮点数的类型。