> On Jun 1, 2017, at 12:58 PM, Scott Marlowe <scott.marl...@gmail.com> wrote: > > On Thu, Jun 1, 2017 at 10:42 AM, Steve Atkins <st...@blighty.com > <mailto:st...@blighty.com>> wrote: >> >>> On Jun 1, 2017, at 9:26 AM, Louis Battuello <louis.battue...@etasseo.com> >>> 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 (pgsql-general@postgresql.org > <mailto:pgsql-general@postgresql.org>) > 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!