有 Java 编程相关的问题?

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

java准备语句返回错误的值

我有一个使用HSQLDB的JAVA应用程序。有一个名为“marks”的表,其中包含一列名为“mark”的整数。如果我使用HSQLDB数据库管理器运行以下查询:选择AVG(CAST(标记为FLOAT)),SUM(标记)FROM marks,其中sid=5,suid=8 DBM返回正确的值: 1.5和3;对于分数1和2

如果我使用下面的JAVA代码通过相同的查询读取这些数据,JAVA总是打印出2。求平均数和总和。我不知道我做错了什么。。也许你能帮我

        double avg = 0;
    PreparedStatement stmt = dbcn.prepareStatement("SELECT AVG(CAST(mark as FLOAT)), SUM(mark) FROM marks WHERE sid=? AND suid=?");
    stmt.setInt(1, 5);
    stmt.setInt(2, 8);
    ResultSet gARS = stmt.executeQuery();
    while(gARS.next()){
        avg = gARS.getDouble(1);
        System.out.println(gARS.getInt(2));
    }
    return avg;

共 (1) 个答案

  1. # 1 楼答案

    系统。out应首先打印总和:3。 然后该方法返回avg,1.5。似乎平均值是四舍五入打印的

    也许你有这样的想法:

    double avg = callToDB(...);
    System.out.printf("%10.0f", avg); // ERROR .0 should be at least .1
    

    因此,请检查格式字符串。如果四舍五入,它可能是整数类型