Java Apache Derby十进制列数据为0.001输出为0.0
我试图在java代码的输出中显示小数点。我在sql语句中将列创建为DECIMAL,在输出中将其转换为double。例如,当列中的数据为3.01时,将正确显示,但是,如果列中的数据为0.001,则仅显示0.0。我正在使用ApacheDerby和java。所讨论的栏目是“BatAvg”。代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.Statement;
public class CreateDBDemo
{
public static void main(String[] args)
{
// Create database
String databaseURL = "jdbc:derby:booksdb;create=true";
try (Connection conn = DriverManager.getConnection(databaseURL))
{
// create a SQL instruction that the connection object will execute
Statement statement = conn.createStatement();
// if the book table does not exist, execute the code in the if block
if (!doesTableExists("Players", conn))
{
// create a table named book
String sql = "CREATE TABLE Players (PlayerNumber int, FName varchar(20), LName varchar(20), Psn varchar(2), BatAvg DECIMAL)";
statement.execute(sql);
// insert two rows of data into the book table
sql = "INSERT INTO Players VALUES (27, 'Carlton', 'Fisk', 'C', 0.001),(3, 'Jimmie', 'Foxx', '1B', 0.002)";
statement.execute(sql);
}
String sql = "SELECT * FROM Players";
ResultSet result = statement.executeQuery(sql);
while (result.next())
{ screen
//System.out.println(result.getString("PlayerNumber"));
int playerNumber = result.getInt("PlayerNumber");
String fName = result.getString("Fname");
String lName = result.getString("Lname");
String posit = result.getString("Psn");
double batting = result.getDouble("BatAvg");
System.out.println(playerNumber+", "+fName+" "+lName+", "+posit+", "+batting);
}
// shut down all databases and the derby engine.
DriverManager.getConnection("jdbc:derby:;shutdown=true");
}// end of try block
catch (SQLException ex)
{
// A clean shutdown always throws SQL exception XJ015, which can be ignored.
if (ex.getSQLState().equals("XJ015"))
{
System.out.println("Derby shutdown normally");
}
else
{
ex.printStackTrace();
}
}// end of catch block
} // end of main method
private static boolean doesTableExists(String tableName, Connection conn)
throws SQLException
{
DatabaseMetaData meta = conn.getMetaData();
ResultSet result = meta.getTables(null, null, tableName.toUpperCase(), null);
return result.next();
}
} // end of class
共 (0) 个答案