John Salerno <[EMAIL PROTECTED]> writes:
> Can someone explain to me why the expression 5 / -2 evaluates to -3,
> especially considering that -2 * -3 evaluates to 6?
> 
> I'm sure it has something to do with the negative number and the
> current way that the / operator is implemented, but why doesn't it
> evaluate to -2 instead?

Well, -2 * -2 is 4, which is not especially better than 6.  The
reason for choosing -3 instead of -2 is so that if b is positive,
then a%b is non-negative even if a is negative.  That is, the
motivating case is (-5 % 2) which is done the same way as (5 % -2).

You want (b*(a/b) + a%b)==a at all times.  If (-5 / 2) = -3, then you
need (-5 % 2) = -1.  But if (-5 / 2) = -2, then (-5 % 2) = +1.
Since a%b is positive, you can use it as a list index, etc.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to