import java.sql.*; public class Range { public static void main(String args[]) throws Exception { Class.forName("org.postgresql.Driver"); Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5750/jurka","jurka",""); setupDB(conn); insert(conn,Double.NaN,0); insert(conn,Double.MAX_VALUE,0); insert(conn,Double.MIN_VALUE,0); insert(conn,Double.NEGATIVE_INFINITY,0); insert(conn,Double.POSITIVE_INFINITY,0); insert(conn,0,Float.MIN_VALUE); insert(conn,0,Float.MAX_VALUE); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a,b FROM floattable"); while (rs.next()) { System.out.println(rs.getDouble(1)+", "+rs.getFloat(2)); } rs.close(); stmt.close(); conn.close(); } private static void setupDB(Connection conn) throws SQLException { Statement stmt = conn.createStatement(); try { stmt.executeUpdate("DROP TABLE floattable"); } catch (SQLException sqle) { conn.rollback(); } stmt.executeUpdate("CREATE TABLE floattable(a float, b real)"); stmt.executeUpdate("INSERT INTO floattable VALUES ('nan','nan')"); } private static void insert(Connection conn, double d, float f) { try { PreparedStatement pstmt = conn.prepareStatement("INSERT INTO floattable(a,b) VALUES (?,?)"); pstmt.setDouble(1,d); pstmt.setFloat(2,f); pstmt.executeUpdate(); pstmt.close(); } catch (SQLException sqle) { sqle.printStackTrace(); try { conn.rollback(); } catch (SQLException e) { } } } }