加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

为什么0.1+0.2不等于0.3?原来编程语言是这么算的……

发布时间:2019-10-23 00:14:34 所属栏目:评测 来源:机器之心编译
导读:副标题#e# 【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 打开你的 Python,输入「0.1+0.2=」,结果是多少?0.30000000000000004 对不对?为什么结果不是 0.3?本文作者给出了详细的解释。 从小我们就知道 0.1 + 0.2=0.3。但是,在光怪

用科学计数法表示二进制 0.1 并只保留前 52 位:
为什么0.1+0.2不等于0.3?原来编程语言是这么算的……

尾数部分处理好后。现在我们用下面的方式处理指数:
为什么0.1+0.2不等于0.3?原来编程语言是这么算的……

这里,11 代表我们要使用的 64 位表示的指数位数,-4 代表科学计数中的指数。

所以最终数字 0.1 的表示形式是:

 
为什么0.1+0.2不等于0.3?原来编程语言是这么算的……

同理,0.2 表示为:

 为什么0.1+0.2不等于0.3?原来编程语言是这么算的……

将两个数相加,得到:

 为什么0.1+0.2不等于0.3?原来编程语言是这么算的……

转换为浮点数,它变成:
 
为什么0.1+0.2不等于0.3?原来编程语言是这么算的……

这就是 0.1 + 0.2 = 0.30000000000000004 的原因。

【编辑推荐】

  1. 麻省理工学院开发出组装机器人:未来可建造太空殖民地
  2. 开发人员花在实际编写代码上的时间有多少?
  3. 2020 时代的开发人员关键词:开源和远程办公
  4. 五门最有前景的编程语言,JavaScript居然垫底
  5. 从bug看11种编程语言演化史,果然如今Python比较流行
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读