gpt4 book ai didi

java - 准备好的语句返回错误值

转载 作者:行者123 更新时间:2023-12-01 13:35:44 25 4
gpt4 key购买 nike

我有一个使用 HSQLDB 的 JAVA 应用程序。有一个名为“marks”的表,其中包含一列名为“mark”的整数。如果我使用 HSQLDB DatabaseManager 运行以下查询: SELECT AVG(CAST(mark as FLOAT)), SUM(mark) FROM 标记 WHERE sid=5 AND suid=8DBM 返回正确的值: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;

最佳答案

System.out 应首先打印 SUM:3。然后该方法返回平均值,1.5。看来 avg 是四舍五入打印的。

也许你有类似的东西:

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

因此请检查格式字符串。如果向下舍入,则可能是 int 类型转换。

关于java - 准备好的语句返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21289248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com