Re: Rounding Double Precision or Numeric

From: Steve Atkins <steve(at)blighty(dot)com>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Rounding Double Precision or Numeric
Date: 2017-06-01 16:42:19
Message-ID: 43BF799B-EF60-48C2-9220-0C1881F2CA36@blighty.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


> On Jun 1, 2017, at 9:26 AM, Louis Battuello <louis(dot)battuello(at)etasseo(dot)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.

Cheers,
Steve

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Scott Marlowe 2017-06-01 16:58:31 Re: Rounding Double Precision or Numeric
Previous Message Tom Lane 2017-06-01 16:41:42 Re: Slow query plan used