Search Postgresql Archives

Re: Arbitrary precision modulo operation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Paul Tillotson [mailto:pntil@shentel.net] 
> Sent: Monday, April 26, 2004 4:41 PM
> To: pgsql-general@postgresql.org
> Subject: Re:  Arbitrary precision modulo operation
> 
> 
> I see there are a few misconceptions about numeric and 
> modulus on here:
> 
> (1) A modulus operation on a numeric type should NOT have 
> rounding errors.  The whole point of numeric is that it is an 
> arbitrary precision BASE 10 representation of your number.  

This is true

> The modulus returns the (whole
> number) remainder as a result of a division.

This is true if the numeric values are integers.

When the values are not integral, some non-integral results can be
returned.

2.50 % 2.50 is 0
But 13.89 modulo 3.50 is 3.39 
If you work it out on paper, you will see that 3.39 is the correct
remainder.
 
> (2) the modulus operator/function is, AFAIK, supposed to 
> return the modulus with the SAME SIGN as the divisor, so I 
> think this is a bug. That's what every other modulus operator 
> that I have ever seen does. Would you mind doing

I would agree that a positive modulus is preferable.  However, the
negative result is also mathematically correct.
 
> foodb=> SELECT version();
> 
> (3) MySQL just rounds large numbers to the highest value that 
> the type will support, and apparently, no arbitrary precision 
> types are listed on this page:
> 
> http://dev.mysql.com/doc/mysql/en/Numberic_type_overview.html
> 
> You can't expect to get a modulus from an out-of-range number.

Should it not (therefore) throw an error of some sort?

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux