Kevin Grittner <kgri...@ymail.com> writes:
> Assuming that all values are integers, for:

>   x = a / b;
>   y = a % b;

>   If b is zero either statement must generate an error.
>   If a and b have the same sign, x must be positive; else x must be negative.
>   It must hold that abs(x) is equal to abs(a) / abs(b).
>   It must hold that ((x * b) + y) is equal to a.

Not sure about the third of those statements, but the last one is
definitely a requirement.

I think the only defensible choice, really, is that % should be defined
so that a = ((a / b) * b) + (a % b).  It is perfectly reasonable to
provide other division/modulus semantics as functions, preferably in
matching pairs that also satisfy this axiom.  But the two operators need
to agree, or you'll have surprised users.

                        regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to