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;
}