除法:传统除法、floor和真除法

  • Post author:
  • Post category:其他


除法:传统除法、floor和真除法

有三种类型的除法操作符,其中一种操作符在python 3.0 中有了变化

x/y:



传统除法和真除法。在python2.7之前,这个操作对于整数会省去小数部分,对于浮点数会保持小数部分



在python 3.0版本中会变成真除法(无论任何类型都会保持小数部分)

x//y:



floor除法。这个操作不考虑操作对象的类型,总会省略掉结果的小数部分,剩下最小的能整除的部分。如果有浮点型则返回浮点型,如果是整数则返回整数

//操作符通常叫做截断除法,但是更准确的说法是floor除法,它把结果向下截断到它的下层,即正真结果之下最接近的整数。其直接效果是向下舍入,并不是严格地截断,并且对负数也有效



添加真除法是为了解决最初的传统除法的结果,依赖于操作数类型,这样会使结果在python这样的动态类型语言中难以预料

由于这一限制,python3取消了传统除法:/和//操作符在python3.0中分别实现真除法和floor除法

在3.0中 /返回浮点结果,//是floor除法,返回整数

math中的方法

floor trunc

math.floor(2.5) 2

math.floor(-2.5) -3

math.trunc(2.5) 2

math.trunc(-2.5) -2



版权声明:本文为wutongyu_314原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。