python 为什么算除法自动取整了。如图,计算10/a 自动保留到整数了。

 我来答
fallx
2018-03-02 · TA获得超过5486个赞
知道大有可为答主
回答量:2321
采纳率:73%
帮助的人:728万
展开全部

在2.x版本都是这样,会自动取整。

在3.x版本以上改了,结果保留浮点数。系统本身设计就这样的。可以认为是开发python语言的开发者们任性,所以就这样了

附:pyhton中除法的余数

v2.2 以前,除(“/”)运算符的返回有两种可能情况,分别是整型和浮点型。操作数的不同,是影响计算结果数据类型的关键。
以 a / b 为例,a、b均为整型,则结果返回整型;a、b任意一个是浮点型的话,则结果就是浮点型。
===========================
# python v2.7
>>> 3 / 2, 3.0 / 2, 3.0 / 2.0
(1, 1.5, 1.5)
===========================

在某些场合,我们可能会期待 a / b 返回浮点型,可是由于某些不确定的因素,参与运算的 a 和 b都是整型,这可能会带来错误,显然有精度上的损失。

v2.2 以后,引入了“地板除”(“//”)运算符,从数值上讲,它返回小于除法运算结果的最大整数;从类型上讲,与"/"运算符返回类型逻辑一致。
而“/”运算符,没有变化。
===========================
# python v2.7
>>> 3 / 2, 3.0 / 2, 3 // 2, 3.0 // 2
(1, 1.5, 1, 1.0)
===========================

v3.x 以后,“/”运算符被命名为“真除”,不再依据操作数类型选择返回值类型,保证计算结果数值上的精度是第一位的。所以,无须再把操作数转变成浮点型,以保证运算结果不被截断小数部分。
“//”运算符,不变。
===========================
# python v3.2
>>> 3 / 2, 3.0 / 2, 3 // 2, 3.0 // 2
(1.5, 1.5, 1, 1.0)
===========================
LG_MYlove
推荐于2018-03-02 · TA获得超过647个赞
知道小有建树答主
回答量:234
采纳率:93%
帮助的人:214万
展开全部
在python3中,5/2是返回2.5的,5//2是返回2的。前一个是浮点除法,后一个是地板除法(floor division)有时候也叫整数除法,它是向下向下取整的(floor是地板的意思,在这边是取商的最小整数)
在python2.2开始,这2种除法是没有区别的都是整数除法,除非你执行from __future __ import division ,这样它就会才用3.0的方式
忽略future导入,5/2的值会根据商进行四舍五入取整,5.0//2将会返回2.0,因为//是地板除运算符,如果你英文好的话可以点击下面的链接
https://www.python.org/dev/peps/pep-0238/
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式