计算机中小数转二进制的办法:
小数局部乘 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
所以有的小数在计算机中存在失真,或者有的小数在存储到数据库后,再读取进去的值是一个小数位十分多的和原来数字近似的小数。