sqlite求和结果

sqlite求和结果,sqlite,sum,decimal,currency,Sqlite,Sum,Decimal,Currency,测试代码: > String x = "30000000000.222"; > String y = "20000000000.444"; > double x1 = Double.parseDouble(x); > double y1 = Double.parseDouble(y); > > ContentValues vValue51 = new ContentValues(); > vValue51.put(DatabaseStructur

测试代码:

> String x = "30000000000.222";
> String y = "20000000000.444"; 
> double x1 = Double.parseDouble(x);  
> double y1 = Double.parseDouble(y);
> 
> ContentValues vValue51 = new ContentValues();
> vValue51.put(DatabaseStructure.fTmpAttr_X3         , x1 );
> vDatabase.insertData(DatabaseStructure.cTblTemporary3, vValue51);

> ContentValues vValue61 = new ContentValues(); 
> vValue61.put(DatabaseStructure.fTmpAttr_X3  , y1 );
> vDatabase.insertData(DatabaseStructure.cTblTemporary3, vValue61);

> vDatabase.closeDatabase();
> 
> 
> 
> List<Map<String, String>> vListData2 = new
> ArrayList<Map<String,String>>(); String vQuerY32;
>           
> 
> vQuerY32 = "Select SUM(" + DatabaseStructure.fTmpAttr_X3 + " ) 'jik' " + 
>            "From " + DatabaseStructure.cTblTemporary3; 
> 
>           vDatabase = new DatabaseHandler(getApplicationContext());
>           vListData2 = vDatabase.getListData(vQuerY32);
>           vDatabase.closeDatabase();

I tried many data type for column

> vQuery = "create table " + cTblTemporary3 +
>                "("+
>                fTmpAttr_ID3 + " integer primary key, " +
>                fTmpAttr_V3  + " DECIMAL(10,5), " +
>                fTmpAttr_W3  + " FLOAT , " +
>                fTmpAttr_X3  + " REAL, " +
>                fTmpAttr_Y3  + " DOUBLE PRECISION, " +
>                fTmpAttr_Z3  + " double " +
>                ")";       vSQL.execSQL(vQuery);
>字符串x=“300000000000.222”;
>字符串y=“200000000000.444”;
>double x1=double.parseDouble(x);
>双y1=double.parseDouble(y);
> 
>ContentValues vValue51=新ContentValues();
>vValue51.put(DatabaseStructure.fTmpAttr_X3,x1);
>插入数据(DatabaseStructure.cTblTemporary3,vValue51);
>ContentValues vValue61=新ContentValues();
>vValue61.put(DatabaseStructure.fTmpAttr_X3,y1);
>插入数据(DatabaseStructure.cTblTemporary3,vValue61);
>vDatabase.closeDatabase();
> 
> 
> 
>列表vListData2=新
>ArrayList();字符串vQuerY32;
>           
> 
>vQuerY32=“选择SUM(“+DatabaseStructure.fTmpAttr\ux3+”'jik'”
>“From”+DatabaseStructure.cTblTemporary3;
> 
>vDatabase=新的DatabaseHandler(getApplicationContext());
>vListData2=vDatabase.getListData(vQuerY32);
>vDatabase.closeDatabase();
我尝试了许多列的数据类型
>vQuery=“创建表”+cTblTemporary3+
>                "("+
>fTmpAttr_ID3+“整数主键,”+
>fTmpAttr_V3+“十进制(10,5),”+
>fTmpAttr_W3+“浮动”+
>fTmpAttr_X3+“真实”+
>fTmpAttr_Y3+“双精度”+
>fTmpAttr_Z3+“双”+
>                ")";       execSQL(vQuery);
===============================getListDataFunction===========================================

公共列表getListData(字符串vQuery)
{
List vListData=new ArrayList();
游标vCursor=getCursorData(vQuery);
int vLength=vCursor.getColumnCount();
字符串[]vFields=新字符串[vLength];
如果(vCursor.getCount()>0){
对于(int i=0;i
我把结果记录下来

Log.d(“TEST”,vListData2.get(0.get(“jik”))


,结果不是50000000000.666,而是5e+10,我如何才能得到50000000000.666?请帮助这个新手:(

问题是
Log
。你到底想对结果做什么?我想在文本视图上显示结果,你怎么会认为你没有得到它?
Log
是舍入。呼,秒,我试着显示它,谢谢大师:>当我显示结果是5e+10时,我解析为双倍,结果是50000000000:(
 public List<Map<String, String>> getListData(String vQuery)
{

  List<Map<String, String>> vListData = new ArrayList<Map<String,String>>();

  Cursor vCursor = getCursorData(vQuery);
  int vLength = vCursor.getColumnCount();
  String[] vFields = new String[vLength];

  if (vCursor.getCount() > 0){
      for (int i = 0; i < vLength; i++) 
          vFields[i] = vCursor.getColumnName(i);

      vCursor.moveToFirst();
      while (!vCursor.isAfterLast()) {

          Map<String, String> vMapData = new HashMap<String, String>();

          for (int i = 0; i < vLength; i++) 
              vMapData.put(vFields[i], vCursor.getString(i));

          vListData.add(vMapData);

          vCursor.moveToNext();
      }
  }

  vCursor.close();
  return vListData;       
}