Peter Kovacs wrote:
> One last question:
>
> How come that Java double, which is an 8 byte size floating point
> number, cannot fit in PostgreSQL's double precision type, which is
> equally a floating point type and 8 bytes in size?
Hmm. I'm not sure when the truncation happens. The value might actually
still be intact when it's converted from text representation to double,
and loses precision in the conversion from float8 to decimal. It's
possible to have a floating point value in the database that you can't
get out in text format without losing precision. Consider this for example:
postgres=# SELECT
'6.118992224252588'::float8,
'6.11899222425259'::float8,
'6.11899222425259'::float8 = '6.118992224252588'::float8;
float8 | float8 | ?column?
------------------+------------------+----------
6.11899222425259 | 6.11899222425259 | f
(1 row)
Both values are rounded to the same value on output, but if you compare
them, they're actually not equal.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com