Re: BUG #13885: float->string conversion loses precision server-side on JDBC connection

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: xtracoder(at)gmail(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #13885: float->string conversion loses precision server-side on JDBC connection
Date: 2016-01-25 16:06:45
Message-ID: 11278.1453738005@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

xtracoder(at)gmail(dot)com writes:
> I have a PostgreSQL function, which accepts JSON, performs some processing,
> and returns JSON. Something strange is happening when calling stored
> procedure from Java application - float->string conversion is incorrect.

I don't think it's "incorrect". I believe the displayed difference here
is because the JDBC driver sets extra_float_digits to 3 or so.
Compare this in psql:

regression=# do $$ declare x float := 4.1; begin raise notice 'x = %', x; end$$;
NOTICE: x = 4.1
DO
regression=# set extra_float_digits = 3;
SET
regression=# do $$ declare x float := 4.1; begin raise notice 'x = %', x; end$$;
NOTICE: x = 4.09999999999999964
DO

The uglier-looking number is a more precise representation of the actual
float4 value.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alvaro Herrera 2016-01-25 16:08:40 Re: BUG #13888: pg_dump write error
Previous Message kunschikov 2016-01-25 14:30:08 BUG #13888: pg_dump write error