Re: real -> numeric -> real result different through jdbc

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michael Nacos <m(dot)nacos(at)gmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: real -> numeric -> real result different through jdbc
Date: 2009-12-11 16:29:23
Message-ID: 19400.1260548963@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Michael Nacos <m(dot)nacos(at)gmail(dot)com> writes:
> what's the story here? how can the jdbc driver affect the precision of real
> to numeric / numeric to real casts within PL/pgSQL functions?

I seem to recall hearing that JDBC fools with the extra_float_digits
setting. The "0.60000002" looks like it probably is the actual result
of casting 0.6 to float4 --- remember float4 is only good to about six
decimal digits. The default display of float4 rounds off at six digits,
but in some contexts you don't want that rounding to happen because it
might result in losing even more precision. JDBC is being conservative
and taking the latter approach.

regards, tom lane

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Michael Nacos 2009-12-11 16:54:09 Re: real -> numeric -> real result different through jdbc
Previous Message Michael Nacos 2009-12-11 16:05:04 real -> numeric -> real result different through jdbc