当前位置:   article > 正文

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

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,。

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/378697
推荐阅读
相关标签
  

闽ICP备14008679号