Maple output: y := 123456789012345678901234567890 mod 123; y := 117 CONNX output (which uses qfloat by S. Moshier): select mod(123456789012345678901234567890 , 123) {nopassthrough} 117 PariGP output: ? Mod(123456789012345678901234567890, 123) %4 = Mod(117, 123) ? > -----Original Message----- > From: Bruno Wolff III [mailto:bruno@wolff.to] > Sent: Monday, April 26, 2004 10:42 AM > To: Chadwick Boggs > Cc: pgsql-general@postgresql.org > Subject: Re: Arbitrary precision modulo operation > > > On Mon, Apr 26, 2004 at 13:30:17 -0400, > Chadwick Boggs <chadwickboggs@yahoo.com> wrote: > > Example of wrong results from modulo operation of arbitrary > precision > > numbers: > > > > # select '123456789012345678901234567890'::numeric % 123; ?column? > > ---------- > > -6 > > (1 row) > > > > # select mod('123456789012345678901234567890'::numeric, 123); mod > > ----- > > -6 > > (1 row) > > > > The correct result (at least according to another, unnamed, RDBMS): > > > > > select '123456789012345678901234567890' % 123; > > +----------------------------------------+ > > | '123456789012345678901234567890' % 123 | > > +----------------------------------------+ > > | 58 | > > +----------------------------------------+ > > 1 row in set (0.00 sec) > > I checked this with bc and I got -6 (and 117) as being > correct. I would think the other database was wrong. > > It wouldn't happen to be MYSQL would it? > > ---------------------------(end of > broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to > majordomo@postgresql.org > ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly