Re: [Jdbc-commits] JDBC and real values returned by Postgres - Mailing list pgsql-jdbc
From | Olivier Bouiron |
---|---|
Subject | Re: [Jdbc-commits] JDBC and real values returned by Postgres |
Date | |
Msg-id | 4BD7E787.8080703@isc84.org Whole thread Raw |
In response to | Re: [Jdbc-commits] JDBC and real values returned by Postgres (Oliver Jowett <oliver@opencloud.com>) |
List | pgsql-jdbc |
Thanks, you resolved my problem!<br /><br /> If it can help someone, this is how to do:<br /><br /><font color="#3366ff"> public static void main( String[] args ) {<br /> try {<br /> StringBuffer sb = newStringBuffer();<br /> Properties props = new Properties();<br /><br /> // Connexion<br /> props.setProperty( "user", "postgres" );<br /> Connection _connexion = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/test", props );<br /> // Create and fill the table<br/> sb.append( "create temporary table test_oliv (val float);" );<br /> sb.append( "insertinto test_oliv(val) values (1.8);" );<br /> sb.append( "insert into test_oliv(val) values (1.8);" );<br/> sb.append( "insert into test_oliv(val) values (1.8);" );<br /> _connexion.prepareStatement(sb.toString() ).execute();<br /><br /> // Request<br /> ResultSet rs= _connexion.prepareStatement( "select sum(val) as t from test_oliv;" ).executeQuery();<br /> rs.next();<br/> System.out.println( "Before:" );<br /> // <b>Responses from jdbc driver: not thesame</b> displayed by the basic psql editor of postgres.<br /> System.out.println( "Value: " + rs.getFloat("t" ) );<br /> rs.close();<br /><br /> </font><font color="#3366ff"><font color="#cc0000">_connexion.prepareStatement("SET extra_float_digits=0" ).execute();</font><br /> rs = _connexion.prepareStatement("select sum(val) as t from test_oliv;" ).executeQuery();<br /> rs.next();<br /> System.out.println( "After:" );<br /> // <b>Responses from jdbc driver: the same</b> displayed bythe basic psql editor of postgres.<br /> System.out.println( "Value: " + rs.getFloat( "t" ) );<br /><br /> rs.close();<br /><br /> _connexion.close();<br /> } catch ( Exception e ) {<br /> e.printStackTrace();<br /> }<br /> }<br /></font><br /> Regards<br /><br /> Olivier Bouiron<br /><br />Le 28/04/2010 02:04, Oliver Jowett a écrit : <blockquote cite="mid:4BD77B70.40603@opencloud.com" type="cite">Olivier Bouironwrote: <br /><br /><blockquote type="cite">Under the psql editor, when I want the sum of these 3 rows, the answeris 5.4. <br /> But, under Java using the JDBC connector, the answer is 5.399999 <br /><br /> I tried to use an otherconnector (postgresql-8.2-510.jdbc4) and the problem disapears. <br /></blockquote><br /> I'd guess that it is due tonewer drivers setting extra_float_digits. See <a class="moz-txt-link-freetext" href="http://archives.postgresql.org/pgsql-jdbc/2009-05/msg00077.php">http://archives.postgresql.org/pgsql-jdbc/2009-05/msg00077.php</a><br /><br/> -O <br /><br /></blockquote><br /><pre class="moz-signature" cols="72">-- Olivier Bouiron Institut Sainte Catherine 1750, chemin du lavarin 84000 AVIGNON Tel: 04.90.27.57.43 </pre>
pgsql-jdbc by date: