当前位置:

Python之有意思的【0.55+0.3】

本文最后更新于2019-05-09,已超过 1年没有更新,如果文章内容、图片或者下载资源失效,请留言反馈,我会及时处理,谢谢!

温馨提示:本文共417个字,读完预计2分钟。

浮点数可能让你有点眩晕,这是因为,与【整数运算结果永远精确】的特点不同,计算机里浮点数的运算是不精确的,会有四舍五入的误差。这什么意思呢?

下面,请你先心算一道题【0.55+0.3】

然后我们再让Python算一下:

Python之有意思的【0.55+0.3】-Mr.Li's Blog

哎?为什么不是【0.85】,而尾巴多了一个【1】呢?这是因为,Python计算浮点数时,会先把0.550.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下:

# 进制转换
0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制)
0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)

而在这个转化过程中存在误差,这样,就造成了我们与程序计算结果的差异。

所以,这俩二进制数通过二进制法则运算后,再通过复杂的计算公式,将二进制结果转成十进制小数。


原文链接:,转发请注明来源!
评论已关闭。