Re: Rounding numbers from copy expert

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: John Abraham <jea(at)hbaspecto(dot)com>, psycopg(at)postgresql(dot)org
Subject: Re: Rounding numbers from copy expert
Date: 2019-07-24 23:33:16
Message-ID: fb01e8ae-597d-5ccf-f71f-75dd4e00e338@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: psycopg

On 7/24/19 4:28 PM, John Abraham wrote:
> Hmm, I have two machines connecting to the same database running the
> same query inside copy_expert.
>
> Both seem to have psycopg2 2.7.5 (based on pip3 freeze).
>
> One seems to be rounding the double precision number 696538951.985381 to
> 6.96538944E8 whereas the other machine isn't rounding it.

First:

https://www.postgresql.org/docs/11/datatype-numeric.html#DATATYPE-FLOAT

8.1.3. Floating-Point Types
"The data types real and double precision are inexact,
variable-precision numeric types. ...

Inexact means that some values cannot be converted exactly to the
internal format and are stored as approximations, so that storing and
retrieving a value might show slight discrepancies. Managing these
errors and how they propagate through calculations is the subject of an
entire branch of mathematics and computer science and will not be
discussed here, except for the following points: ..."

Second:

Where are you actually 'looking' at the values?

>
> This is causing auditability/repeatability problems, as the difference
> is actually significant in this context.
>
> Is there some thing about the way psycopg2 connects to the database, or
> the way psycopg2 is configured, that could be causing this rounding? Is
> there some way to express a preference for scientific notation?
>
> I'm at a complete loss as to why copy_expert (which basically does a
> 'copy to stdin' query) would be different when called from different
> machines. My next step in the madness is to see if the locale has an
> effect, one is set to en_CA.UTF-8 and the other is set to en_US.UTF-8.
>  But, perhaps someone else has a better idea.
>
> Thanks for any help.
>
> --
> John Abraham
> jea(at)hbaspecto(dot)com <mailto:jea(at)hbaspecto(dot)com>
> 403-232-1060
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse psycopg by date

  From Date Subject
Next Message John Abraham 2019-07-25 00:35:05 Re: Rounding numbers from copy expert
Previous Message John Abraham 2019-07-24 23:28:02 Rounding numbers from copy expert