由于计算机在存储十进制数时,先将该数值转换为二进制存储在内存中。读取时,又将二进制数转换为十进制数,在这个过程中就产生了数据误差。
float和double型,的底层实现是二进制的。十进制中的一个有限位数小数,转换成二进制就不一定是有限位数了,一旦位数超过的float和double型的位数宽度,就会出现“精度溢出”。所以float和double型是为了科学计算而设计的,并不适合精确的十进制计算.就像一个十进制的小数,要不断地乘以2取整,但在这个过程中可能会一直循环下去,这就造成了数据的不精确。
【误差分析】