Re: [GENERAL] Rounding Double Precision or Numeric - Mailing list pgsql-general

From Louis Battuello
Subject Re: [GENERAL] Rounding Double Precision or Numeric
Date
Msg-id E5702B8F-359B-42F4-B2BD-4BCE3E570C3B@etasseo.com
Whole thread Raw
In response to Re: [GENERAL] Rounding Double Precision or Numeric  (Scott Marlowe <scott.marlowe@gmail.com>)
List pgsql-general

On Jun 1, 2017, at 12:58 PM, Scott Marlowe <scott.marlowe@gmail.com> wrote:

On Thu, Jun 1, 2017 at 10:42 AM, Steve Atkins <steve@blighty.com> wrote:

On Jun 1, 2017, at 9:26 AM, Louis Battuello <louis.battuello@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)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Perfectly clear now. Thank you!

pgsql-general by date:

Previous
From: Karl Czajkowski
Date:
Subject: Re: [GENERAL] jsonb case insensitive search
Next
From: armand pirvu
Date:
Subject: Re: [GENERAL] jsonb case insensitive search