我正在制作一个记录触摸屏操作时间戳的应用程序,这让我成为了我的用户。
然后,在 SQLite 表中记录读数后,我在最后取每列的平均值。但是,我收到一个错误:
E/AndroidRuntime(1344): java.lang.NumberFormatException: Invalid long: "1.40024e+08"
当我尝试取每列的平均值时会发生这种情况,我正在这样做:
public long[] getAvg()
{
String selectQuery = "SELECT AVG(dwell_1), AVG(dwell_2), AVG(dwell_3), AVG(dwell_4), AVG(dwell_5), AVG(dwell_6), AVG(dwell_7), AVG(dwell_8), AVG(dwell_9), AVG(flight_12), AVG(flight_23), AVG(flight_34), AVG(flight_45), AVG(flight_56), AVG(flight_67), AVG(flight_78), AVG(flight_89) FROM " + TABLE;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
long[] row = new long[17];
if (cursor.moveToFirst()) {
for (int j=0; j<17; j++)
row[j] = Long.parseLong(cursor.getString(j));
}
return row;
}
它似乎是 SQLite 查询显示结果的方式的函数。有什么办法可以规避/解决这个问题吗?顺便说一句,我需要精度,所以我不能使用 int 或其他东西。
奇怪的是,当我运行查询以直接显示表中的每条记录时,它工作正常。
任何帮助将不胜感激。提前致谢!