为什么电脑不会计算小数(计算机算不了小数)

学过编程语言的人都知道,所有的编程语言都会有浮点数这种数据类型(不同的编程语言可能叫法不一样,但暂且可以把它理解为日常生活中的小数)。进行浮点数运算的时候,有时会发现计算的结果与正确的结果并不一样,例如,将0.1累加100次的时候,得到的结果并不是刚好是10,而是会存在误差(我得到的结果是10.09999999999998,不同的编程语言会可能会得到不同的结果,但结果都会出现小数,而不是整数10)。为什么计算能力如此强大的电脑也会犯如此低级的错误呢?接下来让我们一起看看电脑是如何处理小数的吧。

首先,电脑是用二进制来表示小数的(例如0.0101),而不是我们常用的十进制(例如0.5093)。那二进制与十进制有什么区别呢?简单来说就是,二进制数就是每一位只能用0和1来表示的数(例如10.11),而十进制数是每一位只能用0~9这十个数来表示的数(例如19.58)(历史上也出现了许多其他的进制,有些现在还在使用,有兴趣的可以去了解相关的进制发明史,还是挺有趣的)。

为什么电脑不会计算小数(计算机算不了小数)

二进制数与十进制数之间,通过对应的运算规则就可以进行相互转换。下面举个例子来说明一下二进制数转换成十进制数(括号后面的数表示这个括号里面的数是多少进制的):

(1011.0011)2 = (11.1875)10

我们先将二进制数每一位都拆出来,从最低位开始,然后一位一位地转换成十进制数,在分别计算的时候把其它位的数都当成0。(2^n表示2的n次方,n为任意数。另外,不知道n为0或负数是如何算出来的,可以看查阅相关的资料或者看我上一篇文章:重新认识数学中的指数)

0.0001 = 1 x 2^(-4) = 1 x 0.0625 = 0.0625

0.001 = 1 x 2^(-3) = 1 x 0.125 = 0.125

0.00 = 0 x 2^(-2) = 0 x 0.25 = 0

0.0 = 0 x 2^(-1) = 0 x 0.5 = 0

1 = 1 x 2^0 = 1 x 1 = 1

10 = 1 x 2^1 = 1 x 2 = 2

000 = 0 x 2^2 = 0 x 4 = 0

1000 = 1 x 2^3 = 1 x 8 = 8

然后将上面的结果全部加起来就等于 11.1875

从上面的计算过程中也可以看出,当二进制数是连续的时候,十进制数数是非连续的。更直观一点,就是二进制数(0.0000)2~(0.1111)2转换成十进制数时只能表示表示为(0.5)10、(0.25)10、(0.125)10、(0.0625)10这4个数的相加组合(每个数只能取0或1次)。这说明了十进制数中有些数是不能用二进制数表示的,例如0.1。或许你会认为,只要二进制数多取一些小数总可以得到吧,但事实是,无论取多少位小数最多也只能转换为近似值(你也可以自己试一下)。

所以,下次写程序要进行浮点数运算时,要特别注意这个问题。一个较好的解决办法是将它转换成整数,然后将得到结果再转换回浮点数。

好了,希望这篇文章能对你们有所帮助,感谢大家的观看。

参考资料:

矢泽久雄.程序是怎样跑起来的.北京:人民邮电出版社,2017

以上内容来源于网络,由“WiFi之家网”整理收藏!

原创文章,作者:电脑教程,如若转载,请注明出处:https://www.224m.com/197076.html

(0)
电脑教程电脑教程
旧光猫换新光猫怎么换(换了光猫怎么重新设置上网)
上一篇 2022年12月5日 08:51
华硕路由器AX3000电竞路由(WiFi6无线技术普及之作)
下一篇 2022年12月5日 09:02

相关推荐

  • 必联(B-Link)路由器无线WiFi网络设置

    本文主要介绍了必联(B-Link)路由器上无线WiFi网络的设置方法,包括无线WiFi名称设置与修改,无线WiFi密码设置与修改。其实,所有无线路由器WiFi的设置,都是大同小异的;需要先进入到路由器设置界面,然后找到无线设置选项,进行设置即可。第一步、登录到B-Link路由器设置界面在浏览器地址栏

    2021年5月13日
    12.8K
  • 解决方法让电脑关机时自动清理垃圾文件(图)

    原标题:"小方法让电脑关机时自动清理垃圾文件"相关电脑问题教程分享。 - 来源:WiFi之家网。电脑使用的时间久了,就会在电脑中留下大量的垃圾文件,从而影响到电脑的运行速度。而对于那些长期不清理电脑垃圾

    2021年6月28日
    6.1K
  • win7系统关闭屏幕保护的解决方法(图)

    原标题:"win7系统关闭屏幕保护的详细教程"相关电脑问题教程分享。 - 来源:WiFi之家网。很多用户都喜欢为电脑设置屏幕保护,这样不仅可以节省电源,还可以延长电脑的使用寿命。不过很多用户在看电影的时

    2021年8月21日
    3.2K
  • 迷你路由器打印机共享设置(同一个路由器打印机共享设置)

    迷你路由器打印机共享设置 在同一个路由器下,将打印机共享给多台设备使用是非常方便的。以下是设置步骤: 首先,将打印机与路由器连接。可以通过有线或者无线方式连接。 进入路由器设置页面…

    网络 2024年11月10日
    0
  • B-Link无线路由器设置步骤图解

    【导读】B-Link无线路由器怎么设置?图文教程,详细信息请阅读下文!本文介绍了必联(B-Link)路由器的连接、上网设置、无线WiFi设置等内容。一台新购买(恢复出厂设置后)的B-Lin"

    2021年1月9日
    29.6K
  • 路由器连接内存怎么设置(路由器连接光猫怎么设置)

    路由器连接内存怎么设置(路由器连接光猫怎么设置) 如果你想要把路由器连接到内存中,你需要完成以下步骤: 首先,将路由器与电脑连接,打开浏览器。 在地址栏中输入路由器的默认IP地址,…

    网络 2023年12月19日
    2
  • 用路由器接两台电脑设置(一台路由器接两台电脑)

    在家里或办公室中,我们经常需要使用多台电脑来工作和娱乐。但是,如果只有一个网络接入点,我们该如何让多台电脑同时上网呢?这就需要用到路由器了。 所谓路由器,就是一种可以将网络信号分发…

    网络 2023年12月22日
    2
  • Adobe CS6软件套装破解 5月更新序列号激活码大全分享

    原标题:"Adobe CS6软件套装怎么破解 序列号激活码大全分享"相关电脑问题教程分享。 - 来源:WiFi之家网。说到Adobe,大部分人的第一印象就是PS,其实Adobe有一整套的工具软件,下面给

    2021年7月4日
    13.2K
  • 蒲公英路由器修改登录密码

    蒲公英路由器修改登录密码 蒲公英路由器是一款功能强大的网络设备,而为了保障网络安全,我们需要经常修改登录密码。 步骤一:进入登录界面 首先,我们需要在电脑或手机的浏览器中输入蒲公英…

    网络 2023年9月11日
    150
  • 路由器设置iOS搜索到无线信号连不上解决方法

    【导读】路由器设置iOS搜索到无线信号连不上,怎么办?路由器设置教程,下面WiFi之家网小编详细为大家介绍一下。路由器设置:iOS搜索到无线信号连不上,怎么办?使用 iOS系统的无线终端连接无线网络时,

    2021年7月25日
    6.2K