My memory failed me on a detail if I want to be rigorous. In the definition of q and r, r is a natural number, but q is a relative number, not a natural.
On 5/19/09 2:06 PM, "Jean-Denis Muys" <jdm...@kleegroup.com> wrote: > On 5/19/09 1:57 PM, "Igor Tandetnik" <itandet...@mvps.org> wrote: > >> "John Machin" <sjmac...@lexicon.net> wrote >> in message news:4a129cb4.2090...@lexicon.net >>> It's handy for checking how things work e.g. >>> >>> sqlite> select (-1) % 7; >>> -1 >>> sqlite> -- it's not a real modulo operator :-( >> >> What do you feel is wrong with this result? What should a "real" modulo >> operator return, in your opinion? Before you answer, note that you very >> likely want this equality to hold for all a, b!=0 : >> >> a = q*b + r >> where q = a/b, r = a%b >> >> Igor Tanetnik >> > > My math courses taught me a long time ago, that the remainder r in Euclidian > division of a by b is defined by: > > There exists unique natural numbers q and r such as: > > a = b*q+r > 0 <= r < b > > q is defined as the quotient, r is defined as the remainder. > > So if the % operator wants to match that math definition, its results should > never be negative. In the example given, (-1)%7 should therefore be 6. > > But I will not argue that the % operator needs to match the math definition, > though I would probably prefer it to. > > Jean-Denis > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users