Yes, this is not bug in terms of 'float->string' convertion - people in
other forum also pointed out to JDBC, "extra_float_digits" and consequences.
On Mon, Jan 25, 2016 at 7:06 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> xtracoder@gmail.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
>