计算机存储小数原理

计算机中小数转二进制的方法:

小数部分乘2,得到乘积,将积的整数部分取出(0或1),再用余下的小数部分乘2,又得到一个乘积,再将积的整数部分取出(0或1),循环处理,直到积中的小数为0,或者达到所要求的精度停止。

小数部分 乘2 结果 二进制位
0.63 ×2 1.26 1
0.26 ×2 0.52 0
0.52 ×2 1.04 0
0.04 ×2 0.08 0

一直计算直到超过了保存的位数,不能精确保存该小数

小数部分 乘2 结果 二进制位
0.75 ×2 1.5 1
0.5 ×2 1 1
0

0.75的二进制为0.11

所以有的小数在计算机中存在失真,或者有的小数在存储到数据库后,再读取出来的值是一个小数位非常多的和原来数字近似的小数。

你可能感兴趣的:(程序员)