Re: PreparedStatement rounds doubles to scale 14 during update
От | Kris Jurka |
---|---|
Тема | Re: PreparedStatement rounds doubles to scale 14 during update |
Дата | |
Msg-id | Pine.BSO.4.64.0710071844250.26337@leary.csoft.net обсуждение исходный текст |
Ответ на | Re: PreparedStatement rounds doubles to scale 14 during update ("Heikki Linnakangas" <heikki@enterprisedb.com>) |
Ответы |
Re: PreparedStatement rounds doubles to scale 14 during update
|
Список | pgsql-jdbc |
On Wed, 5 Sep 2007, Heikki Linnakangas wrote: > 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. > Actually you'll see different behavior with "SET extra_float_digits=2". Is there a reason we shouldn't set this when we create a connection? Kris Jurka
В списке pgsql-jdbc по дате отправления: