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

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

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

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理