我使用以下方法从SQLite数据库返回值。
public String Totalsponsor() {
// TODO Auto-generated method stub
String[] columns = new String[] { KEY_SPONSOR, KEY_SWIMMERLAPS };
Cursor c = ourDatabase.rawQuery("SELECT " + KEY_SWIMMERLAPS + " * "
+ KEY_SPONSOR + " AS result FROM " + DATABASE_TABLE + " ORDER BY "+ KEY_SWIMMERLAPS+" DESC", null);
String result = "";
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getDouble(0) + "\n";
}
return result;
}
如何在返回结果之前对结果进行舍入?
我试过了:
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + Math.round(c.getDouble(0)) + "\n";
}
但它似乎没有用(也许我还没有理解圆方法?)。
编辑:我似乎只是得到了第一个结果。
答案 0 :(得分:1)
DecimalFormat df = new DecimalFormat("####.##"); // here define you can define how much precision you want.
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + df.format(c.getDouble(0)) + "\n";
}
答案 1 :(得分:1)
请尝试以下操作。
DecimalFormat df=new DecimalFormat("0.00");
Double d=new Double("512.56789");
System.out.println(df.format(d));
会为您提供结果 512.57 ,如您所料。
在您的代码中使用它来满足您的要求。
答案 2 :(得分:0)
您可以使用Math.floor(),Math.round(),Math.ceiling()。 Javadocs可在此处获得解释: http://download.oracle.com/javase/6/docs/api/java/lang/Math.html