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:

Previous
From: Tom Lane
Date:
Subject: Re: Connection problems with jdbc
Next
From: Paolo Ambrosio
Date:
Subject: getSuperTables