On 1/21/2016 15:00, Jussi Piitulainen wrote:
Steven D'Aprano writes:
So my guess is that the fastest, and certainly the most obvious, way
to get the same integer division behaviour as C99 would be:
def intdiv(a, b):
# C99 style integer division with truncation towards zero.
n = a//b
if (a < 0) != (b < 0):
n += 1
return n
You should only increment if there is a (non-zero) remainder.
Right. Merging Steven's suggestion and fractions.Fraction.__trunc__
implementation I think the right answer may be:
def intdiv2(a,b):
# C99 style integer division with truncation towards zero.
if (a < 0) != (b < 0):
return -(-a // b)
else:
return a // b
Cheers,
Wolfgang
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
--
https://mail.python.org/mailman/listinfo/python-list