文章插图
但国外有网友早在 2016 年 , 就对这件事产生过迷惑 。
这位网友的质疑正好和我们相反
他觉得100+10%=100.1是错的
文章插图
文章插图
而且 , 手机的计算器不是第一次出错了 。
2011 年 , MIUI 论坛上出现过这样一则帖子:
《【惊爆低级错误】Android 计算器出错!!!》
文章插图
这位网友在 HTC Desire 手机的计算器中输入:
14.52 - 14.49 =
文章插图
答案本该是 0.03 。
文章插图
但他的计算器算出来是 0.0299999……
文章插图
图片来自MIUI论坛
这个错误就不是 feature , 而是一个实打实的程序缺陷 。
文章插图
接下来拿出小本本 , 机哥来给大家讲解一下 , 为什么会出这种错误 。
——轻度烧脑时间开始——
我们知道 , 手机计算器虽然是用十进制显示 , 但背后的运算靠的依然是二进制 。
文章插图
也就是说 , 当我们输入 10 + 10 , 计算器幕后实际执行的是 1010 + 1010 。
(十进制的 10 转换为二进制就是 1010)
文章插图
所以回到楼主提出的算式:14.52 - 14.49 。
问题就出在 14.52 和 14.49 这两个数 , 虽然在十进制中看起来清爽无比 。
文章插图
但转换为二进制的时候 , 它们会变成无限循环的数 。
(为什么无限循环机哥就不说了 , 那是数学上的问题 , 我们知道结果就好)
你看 , 机哥用的这个二进制转换器 , 就提示“超出计算精度” 。
文章插图
文章插图
文章插图
没办法 , 超出就超出吧 , 咱们用这个只保留 16 位的小数 , 进行下一步运算 。
两者相减 , 等于 0.0000011110101110 。
文章插图
再把它转换回十进制 , 结果是:
文章插图
这个转换器精度只有16位 , 把我输入的数略掉了一位
看吧 , 0.029998779296875 , 错误答案就是这样出来的 。
而早期安卓手机计算器的浮点精度 , 虽然比机哥的 16 位高 , 但也是有限的 。
文章插图
所以他们的答案是 0.0299999……
以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!
「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助:- 15式轻型坦克的105毫米坦克炮性能如何,能否击穿T-90S?
- 有谁还记得以前网易有一个特别火的游戏叫天下?有何经历?
- 游戏和陪同对猫咪都很主要
- 手机上的云游戏平台哪个好,手机上的云游戏平台推荐
- 云游戏平台哪个好,云游戏平台推荐介绍
- 腾讯云游戏会员月卡有什么用,腾讯云游戏会员月卡作用介绍
- 腾讯云游戏堡垒之夜登录失败,腾讯云游戏堡垒之夜登录失败解决方法
- 腾讯云游戏和正常游戏有什么区别,腾讯云游戏和正常游戏区别介绍
- 腾讯云游戏开放地区,腾讯云游戏开放地区具体介绍
- 腾讯云游戏内测怎么申请,腾讯云游戏申请内测方法介绍