Re: Floating point error - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Floating point error
Date
Msg-id 512AD7CD.6040803@gmail.com
Whole thread Raw
In response to Re: Floating point error  (Tom Duffey <tduffey@trillitech.com>)
Responses Re: Floating point error  (Tom Duffey <tduffey@trillitech.com>)
List pgsql-general
On 02/24/2013 06:58 PM, Tom Duffey wrote:
>
> On Feb 24, 2013, at 8:44 PM, Adrian Klaver <adrian.klaver@gmail.com> wrote:
>
>> On 02/24/2013 06:13 PM, Tom Duffey wrote:
>>> Hi Everyone,
>>>
>>> Riddle me this. I have a database column of type "real" that gets mapped to a Java field of type double via JDBC.
Wehave two databases, test and production, and the test database is periodically blown away and reloaded from a copy of
production.We recently noticed that some values do not match when viewed within our application on test vs. production.
Morespecifically: 
>>>
>>> - Selecting values from both test and production DBs using psql shows "10.3885" as the value
>>> - The Java app on production shows "10.3884573" while the test app shows "10.3885"
>>>
>>> I have a hunch that when the value was originally inserted into the production DB it probably contained more than
the6 digits supported by the real data type. It may have even been exactly the "10.3884573" value we see when
retrievingvia JDBC on production. What I don't understand is why when the value gets mapped back to Java via JDBC those
extradigits are coming back. Can anyone explain this or do you think I'm on the wrong track? I stepped through code and
itsure seems like the extra information is coming back from the JDBC driver. 
>>
>> Are the production and test apps running on the same platform i.e. OS, bitness, etc.
>
> Yes, the production and test apps are running on the same platform. The Java apps themselves are physically on the
sameLinux server. The production and test databases reside within the same instance of PostgreSQL. 
>
> Also, I should have mentioned up front that I am well aware of the pitfalls of using floating point values and also
thefact that PostgreSQL's "real" data type supports 6 digits of precision. What I do not understand is why my JDBC
driveris returning more information than what I receive in psql or if I operate on a copy of the database. This leads
meto believe that more information was available at insertion time and is somehow being made available to my
applicationeven though the data type should only store 6 digits. Let me see if I can write a quick little test case. 
>

Well I guess you could look in the dump file and see what is recorded there.

> Tom
>


--
Adrian Klaver
adrian.klaver@gmail.com

pgsql-general by date:

Previous
From: Edson Richter
Date:
Subject: Re: Floating point error
Next
From: Adrian Klaver
Date:
Subject: Re: [JDBC] can't access through SSL