On 21 January 2016 at 08:39, Shiyao Ma <i...@introo.me> wrote: > > I wanna simulate C style integer division in Python3. > > So far what I've got is: > # a, b = 3, 4 > > import math > result = float(a) / b > if result > 0: > result = math.floor(result) > else: > result = math.ceil(result) > > > I found it's too laborious. Any quick way?
How precise do you want to be? I think that having a negative divisor doesn't come up much in practise but this matches in all cases anyway: atruncb = abs(a) // abs(b) if a * b > 0 else - (abs(a) // abs(b)) If you don't care about the negative divisor case then it becomes: atruncb = abs(a) // b if a > 0 else - (abs(a) // b) Note that for integers in Python these are exact and will work for integers of any size. Using floating point is unnecessary here and would have overflow problems. -- Oscar -- https://mail.python.org/mailman/listinfo/python-list