Обсуждение: jdbc rounding value for numeric fields

Поиск
Список
Период
Сортировка

jdbc rounding value for numeric fields

От
Ioana Danes
Дата:
Hi Everyone,

I have a problem with a prepare statement rounding the numeric fields.

I have 2 inserts into a numeric field. The first insert is using an update statement and the second one a prepared
statement.
It looks like the prepared statement is doing a rounding on the inserted  value....

First insert:
          sql.executeUpdate("insert into jdbc_demo values (2.6999999999999997)");
Postgresql log for the first insert:
          insert into jdbc_demo values (2.6999999999999997)
The value in the database:
          2.6999999999999997
 
Second Insert:
          PreparedStatement ps = db.prepareStatement("insert into jdbc_demo values (?)");
          ps.setDouble(1,2.6999999999999997);
          ps.executeUpdate();
          ps.close();
Postgresql log for the second insert:
           insert into jdbc_demo values ($1) parameters: $1 = '2.6999999999999997'
The value in the database:
           2.7

Does anyone know why this is happening and if is a jdbc or postgres issue?

Thanks a lot,
Ioana Danes



      __________________________________________________________________
Looking for the perfect gift? Give the gift of Flickr!

http://www.flickr.com/gift/


Re: jdbc rounding value for numeric fields

От
Ioana Danes
Дата:
Thank you Tom,

My problem could be fixed with BigDecimal...


--- On Mon, 5/25/09, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> From: Tom Lane <tgl@sss.pgh.pa.us>
> Subject: Re: [JDBC] jdbc rounding value for numeric fields
> To: "Ioana Danes" <ioanasoftware@yahoo.ca>
> Cc: pgsql-jdbc@postgresql.org
> Received: Monday, May 25, 2009, 11:15 AM
> Ioana Danes <ioanasoftware@yahoo.ca>
> writes:
> >           
> ps.setDouble(1,2.6999999999999997);
>
> Don't use setDouble.  float8 to numeric conversion
> only preserves
> DBL_DIG (ie, 15 on standard platforms) decimal digits,
> since that's
> the most that can be fully trusted in a float8 value.
>
>            
> regards, tom lane
>


      __________________________________________________________________
Looking for the perfect gift? Give the gift of Flickr!

http://www.flickr.com/gift/