有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案