float8 auto truncation issue in ODBC v. PGSQL

From: postgresql(dot)org(at)tgice(dot)com
To: pgsql-odbc(at)postgresql(dot)org
Subject: float8 auto truncation issue in ODBC v. PGSQL
Date: 2006-06-13 19:28:34
Message-ID: 448F11E2.1020504@tgice.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Not sure if the ODBC list is the best place for this question, but I've
encountered some strange behavior and was wondering if anyone had an
idea as to what's going on.

I've got a float8 data type in a column. I have a value '1.0475'
inserted into it. That number cannot of course be perfectly represented
as a float8.

When I perform a test like this in MSSQL 7, e.g., and select it using
any variety of tools I get this out:

1.0475000000000001

When I use my own ODBC SQL client to select the same value from my
Postgres 8.0 database, I get the same thing:

1.0475000000000001

*However*, and here's the troubling part, when I select the exact same
value using psql (and I have reason to believe the same thing is going
on inside pl/pgsql functions), the value that comes out is:

1.0475

Now, some of you may say, "What's your problem? That's actually the
correct value!" That's true, it is. However, I'm confused as to the
differences between the result I get *from* PG via my ODBC client and
what Postgres shows with it's internal tools.

The reason this came up is, for some uninteresting reason, I really need
to see the former value (w/ the trailing 1) inside Postgres (a pl/pgsql
function) when making a computation.

I'd appreciate any insight, and apologize if I missed something obvious
in the docs or via my googling.

John

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Tom Lane 2006-06-13 20:14:49 Re: float8 auto truncation issue in ODBC v. PGSQL
Previous Message Hiroshi Inoue 2006-06-13 14:12:58 Re: Patch for snprintf problem (bug #1000650) 4-th try