python除法向下取整函数_除法:经典除法,向下取整除法和真除法

实际上,Python中有三种风格的除法,以及两种不同的除法运算符,其中一种运算符在Python3.X中有所变化。这部分内容非常细节化,但它是Python3.X中另一个主要的变化,而且可能会破坏2.X的代码,所以下面直接给出除法运算符的描述。

X / Y

经典除法和真除法。在Python2.X或者之前的版本中,这个操作对于整数会省去小数部分,对于浮点数会保持余项(小数部分)。在Python3.X变成真除法,即无论任何类型。最终的浮点数结果都会保留小数部分。

X // Y

向下取整除法。这是从Python2.2开始新增的操作,在Python2.X和3.X中均能使用,这个操作不考虑对象的类型,总是会省略结果的小数部分,剩下最小的能够整除的整数部分,它的结果类型取决于操作数的类型。

Python中引入真除法,是为了解决经典除法的结果依赖于操作数类型(这种结果在Python这样的动态语言中很难预料)的现象。由于这一限制,Python3.X中移除了经典除法: / 和 // 运算符在Python3.X中分别实现了真除法和向下取整除法。

在Python3.X中, / 现在总是执行真除法,不管操作数的类型,都返回包含任意小数部分的一个浮点数结果。// 执行向下取整除法,它截取掉余数并针对整数操作数返回一个整数,如果有一个操作数是浮点数类型,则返回一个浮点数。

要注意,在Python3.X中,//的结果的数据类型总是依赖于操作数的类型:如果操作数中有一个是浮点数,结果就是浮点数,否则,结果就是一个整数。

此外,由于// 运算符是作为依赖于整数截断除法的程序而引入的一种兼容性工具,因此它必须为整数返回整数。

向下取整除法 vs 截断除法

一个细节是: // 运算符有一个非正式的别名,叫做截断除法,不过更准确的说法应该是向下取整除法。 // 把结果向下截断到它的下层,即真正结果之下的最近的整数,其直接效果是向下舍入,并不是严格的截断,并且这对负数也有效,你可以使用Python的math模块来查看其中的区别。

floor返回数字的下舍整数,所以返回的结果的是-3

和 // 结果相同,这意味着 // 不是对结果去除小数部分,而是向下获取最近的整数。所以称为向下取整除法。

对于trunc是对结果进行截断操作,其结果总是趋近于0,。

对于正数,截断除法和向下取整除法是相同的,对于负数,//向下取整除法得到的是 向下 最近的最近整数。(向下!向下!向下!!!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值