python中浮点数的处理

请问为什么是0.999999999999?而不是1.0呢?... 请问为什么是0.999999999999?而不是1.0呢? 展开
 我来答
匿名用户
推荐于2017-12-16
展开全部
主要还是因浮点数在计算机中实际是以二进制保存的,有些数不精确。

0.1 是十进制,转化为二进制后它是个无限循环的数:
0.00011001100110011001100110011001100110011001100110011001100。。。。。

而python是以双精度(64)位来保存浮点数,多余的位会被截掉,所以看到的是0.1,但在电脑上实际保存的已不是精确的0.1,参与运算后,也就有可能有点点误 差。

有些小数转化为二进制后是有理数且在64位内,所以在计算机上保存的也是精确的,这些小数参与运算后结果一般会是很精确的,不会出现你说的情况。

浮点数很复杂,这些也是我以前查资料时的一点记录,你可以自己去GOOGLE看看。
liuyawei900128
2014-12-10 · TA获得超过140个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:82.4万
展开全部
我感觉是python版本问题我这里用的3.2版本输出就是1.0
追问
但是准备来说应该是0.999999999999999,为什么呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lpe234
2014-12-10 · TA获得超过2778个赞
知道小有建树答主
回答量:1250
采纳率:50%
帮助的人:560万
展开全部
你别在交互shell里面直接运行。

你写成 .py 文件之后再运行就可以了
追问
可是不应该一样吗?但是为什么会有些差别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式