Re: PreparedStatement rounds doubles to scale 14 during update
От | Heikki Linnakangas |
---|---|
Тема | Re: PreparedStatement rounds doubles to scale 14 during update |
Дата | |
Msg-id | 46DEB80F.40008@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: PreparedStatement rounds doubles to scale 14 during update ("Peter Kovacs" <maxottovonstirlitz@gmail.com>) |
Ответы |
Re: PreparedStatement rounds doubles to scale 14 during update
|
Список | pgsql-jdbc |
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
В списке pgsql-jdbc по дате отправления: