oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式( 三 )



oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
但国外有网友早在 2016 年 , 就对这件事产生过迷惑 。
这位网友的质疑正好和我们相反
他觉得100+10%=100.1是错的

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
而且 , 手机的计算器不是第一次出错了 。
2011 年 , MIUI 论坛上出现过这样一则帖子:
《【惊爆低级错误】Android 计算器出错!!!》

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
这位网友在 HTC Desire 手机的计算器中输入:
14.52 - 14.49 =

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
答案本该是 0.03 。

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
但他的计算器算出来是 0.0299999……

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
图片来自MIUI论坛
这个错误就不是 feature , 而是一个实打实的程序缺陷 。

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
接下来拿出小本本 , 机哥来给大家讲解一下 , 为什么会出这种错误 。
——轻度烧脑时间开始——
我们知道 , 手机计算器虽然是用十进制显示 , 但背后的运算靠的依然是二进制 。

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
也就是说 , 当我们输入 10 + 10 , 计算器幕后实际执行的是 1010 + 1010 。
(十进制的 10 转换为二进制就是 1010)

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
所以回到楼主提出的算式:14.52 - 14.49 。
问题就出在 14.52 和 14.49 这两个数 , 虽然在十进制中看起来清爽无比 。

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
但转换为二进制的时候 , 它们会变成无限循环的数 。
(为什么无限循环机哥就不说了 , 那是数学上的问题 , 我们知道结果就好)
你看 , 机哥用的这个二进制转换器 , 就提示“超出计算精度” 。

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
没办法 , 超出就超出吧 , 咱们用这个只保留 16 位的小数 , 进行下一步运算 。
两者相减 , 等于 0.0000011110101110 。

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
再把它转换回十进制 , 结果是:

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
这个转换器精度只有16位 , 把我输入的数略掉了一位
看吧 , 0.029998779296875 , 错误答案就是这样出来的 。
而早期安卓手机计算器的浮点精度 , 虽然比机哥的 16 位高 , 但也是有限的 。

oppoa 8游戏性能怎么样 4 5 7 8写出得数是24的算式

文章插图
所以他们的答案是 0.0299999……


以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: