Re: float8 auto truncation issue in ODBC v. PGSQL

From: "Campbell, Greg" <greg(dot)campbell(at)us(dot)michelin(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, postgresql(dot)org(at)tgice(dot)com
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: float8 auto truncation issue in ODBC v. PGSQL
Date: 2006-06-13 21:02:30
Message-ID: 448F27E6.406@us.michelin.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

I've disassociated floats and exactness, that is floating point representations and exact matches do not
seem to go together. The idea was made more profound when I started looking into the multitude of options
in representing a float in 16, 32 or 64 bits. There are so many different ways to allocate bits for the
number, and bits for the exponent, leading to radically different precisions. Between a value on the
server and a value on the client a difference out in the 15th decimal place hardly seems surprising.

That float_extra_digits is a cool thing to know.

Tom Lane wrote:

> postgresql(dot)org(at)tgice(dot)com writes:
>
>>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
>
>
> By default, the float8 output routine prints a digit or so less than it
> could, precisely to avoid that sort of unsightly result. You can fool
> with float_extra_digits (I think that's the right name, check the docs)
> if you need to adjust this behavior.
>
> This would only matter within a plpgsql function if you are doing
> something that forces the binary value to be converted to text. Which,
> if you're doing tense float computation, you probably don't want to have
> happen at all.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster

Attachment Content-Type Size
greg.campbell.vcf text/x-vcard 241 bytes

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message ricardd 2006-06-13 21:32:10 Re: adding psqlodbc driver in ODBCconfig
Previous Message Tom Lane 2006-06-13 20:14:49 Re: float8 auto truncation issue in ODBC v. PGSQL