2013-08-28 26 views
0

我想从数据库中获得两个浮点数(经度和纬度)。我知道他们正在被正确写入,因为我在应用程序中打开了数据库,它说这两个值分别是42.9512和-83.4225(我选择添加一个随机的地方)。Android SQLite从数据库中得到很长

我本来返回的方法,这两个值在我的DB类成捆,而且还创造了只返回纬度(只是为了测试它是否会工作)的方法:

public long getLat(long l) throws SQLException { 
     String[] cols = new String[]{KEY_ROWID,KEY_ADDRESS,KEY_LATITUDE,KEY_LONGITUDE}; 
     Cursor c = ourDB.query(DATABASE_TABLE, cols, KEY_ROWID + "=" + l, null, null, null, null); 
     if(c != null) { 
      c.moveToFirst(); 
      long lat = c.getLong(2); //latitude column 
     return lat;   
     } 
     return 0l; 
    } 

的类这个值返回到我的类中,显示所有的数据库内容(lat/long除外)。这是代码的一部分:

Bundle favLoc = temp.getLatLng(rowID); 
    long lat = temp.getLat(rowID);  
    long lng = favLoc.getLong("lng"); 
    Toast.makeText(SQLView.this, "Row id: " + rowID + "\nlat: " + lat + "\nlng: " + lng, Toast.LENGTH_LONG).show(); 
    Intent i = new Intent("com.blah.blah.MAINACTIVITY"); 
    i.putExtras(favLoc); 
    setResult(RESULT_OK, i); 
    finish(); 
    break; 

temp是我的DBHelper类的一个实例。我尝试从Bundle中获取长整型值,但我稍微更改了代码,尝试使用专为lat值创建的新方法获取纬度值。 我使用吐司作为调试工具来显示值。

出于某种原因,打印输出的值总是以int而不是浮点形式打印出来 - 所以lat打印为42而不是42.9512,而lng打印为-83而不是-83.4225。

我似乎无法理解为什么会出现这种情况。如果有人能够帮助我解决这个问题,那将非常感激。

+0

我不明白你的问题。你问为什么花车转换成多头时会变圆? – Simon

回答