乐趣区

关于程序员:计算机存储小数原理

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

小数局部乘 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

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

退出移动版