> On Jun 1, 2017, at 12:58 PM, Scott Marlowe <[email protected]> wrote: > > On Thu, Jun 1, 2017 at 10:42 AM, Steve Atkins <[email protected] > <mailto:[email protected]>> wrote: >> >>> On Jun 1, 2017, at 9:26 AM, Louis Battuello <[email protected]> >>> wrote: >>> >>> Is the round() function implemented differently for double precision than >>> for numeric? Forgive me if this exists somewhere in the documentation, but >>> I can't seem to find it. >> >> https://www.postgresql.org/docs/current/static/datatype-numeric.html#DATATYPE-NUMERIC-DECIMAL >> >> "When rounding values, the numeric type rounds ties away from zero, while >> (on most machines) the real and double precision types round ties to the >> nearest even number.". >> >>> Why does the algorithm vary by data type? >> >> Just guessing, but I'd assume because the NUMERIC type behaves as required >> by the SQL spec, while float and double are vanilla IEEE754 arithmetic and >> will do whatever the underlying hardware is configured to do, usually round >> to nearest even. >> > > Exactly. It's important to remember that floats and doubles are > imprecise representations meant for speed, while numeric is designed > for accuracy not speed. > > If one needs an exact answer, one does not use floats. > > > -- > Sent via pgsql-general mailing list ([email protected] > <mailto:[email protected]>) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general > <http://www.postgresql.org/mailpref/pgsql-general>
Perfectly clear now. Thank you!
