On Sep 10, 1:38 am, Dennis Lee Bieber <[EMAIL PROTECTED]> wrote: > On Sun, 09 Sep 2007 22:57:24 -0700, "[EMAIL PROTECTED]" > <[EMAIL PROTECTED]> declaimed the following in comp.lang.python: > > > > > But, in general, doesn't (-11,-4) also satisfy > > x = y * a + b > > -70 = 6 * -11 + (-4)? > > > Do you overpay your car loans and wait for a refund? > > As I stated, integer division and modulo are linked... Which is > "correct" is probably dependent upon the language specifications.
I didn't make an opinion on which was "correct". > Either > method allows one to recover the original value from the output of > divmod. My point was the need to satisfy x = y * a + b doesn't explain WHY divmod(-70,6) returns (-12,2) instead of (-11,-4). > > Whether that works in the way you intend is a different matter -- my > car loans usually have interest factors which are applied per payment by > payment date, so using modulo (or divmod) is not applicable, one must > actually build the table of payments one at a time (especially since the > automatic payments taken from paychecks gets "corrupted" during > holidays, when paychecks are issued a day or two earlier than normal, > meaning less interest charges during that period and more applied to > principle; with more on interest the following week, and less on > interest). Ok, poor example. Suppose instead we are slicing a 70 character string from the right. We certainly CAN'T have 6 12-letter slices, can we? But we can have 6 11-letter slices with 4 characters left over. And there are probably examples where (-12,2) would make more sense, although I can't think of one at the moment. Again, I'm not saying (-12,2) is wrong, just that the explanation why it's (-12,2) is wanting since there are cases where (-11,-4) makes more sense. > -- > Wulfraed Dennis Lee Bieber KD6MOG > [EMAIL PROTECTED] [EMAIL PROTECTED] > HTTP://wlfraed.home.netcom.com/ > (Bestiaria Support Staff: [EMAIL PROTECTED]) > HTTP://www.bestiaria.com/ -- http://mail.python.org/mailman/listinfo/python-list