3.3 计算机运行出错的原因

计算机之所以会出现运行错误,是因为“有一些十进制数的小数无法转换成二进制数”。例如十进制数0.1就无法用二进制数正确表示,小数点后面即使有几百位也无法正确表示。

不能正确表示的原因:

 

 

图3-2是小数点后四位能够用二进制数表示的数值范围为0.0000~0.1111(二进制数是连续的,十进制数是非连贯的)。所以这里只能表示0.5、0.25、0.125、0.0625这四个二进制数小数点后面的位权组合而成(相加总和)的小数。将这些数值组合后能够表示的数值,即表3-1中所示的无序的十进制数。

通过这个图我们也可以清晰的认识到即使使用代码清单3-1也无法得到正确结果的原因是:因为无法正确表示数值,最后都变成了近似值,计算机这个功能有限的机器设备,是无法处理无限循环的小数的。因此,在遇到循环小数时。计算机就会根据变量数据类型所对应的长度将数值从中间截断或者四舍五入。

 

posted @ 2023-02-08 16:48  叮铃铛铛  阅读(16)  评论(0)    收藏  举报