关闭

Android sqlite 数据类型

67人阅读 评论(0) 收藏 举报

场景:一直做金融行业项目,所以数据的精确性十分重要

执行代码查询数据(数据精确到小数点2位)和直接执行SqL所查询数据不一致,经排查发现

 value = cursor.getString(cursor.getColumnIndex(ss[i]));在作怪,此方法对Double数据进行了怎样处理,还需深究

解决方法如下

if(cursor.getType(cursor.getColumnIndex(ss[i])) == Cursor.FIELD_TYPE_FLOAT){
	value = cursor.getDouble(cursor.getColumnIndex(ss[i]))+"";
	} else {
	    value = cursor.getString(cursor.getColumnIndex(ss[i]));
	}


SQLite具有以下五种数据类型:

1.NULL:空值。
  2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。
  3.REAL:浮点数字,存储为8-byte IEEE浮点数。
  4.TEXT:字符串文本。

5.BLOB:二进制对象。


 /** Value returned by {@link #getType(int)} if the specified column is null */
    static final int FIELD_TYPE_NULL = 0;


    /** Value returned by {@link #getType(int)} if the specified  column type is integer */
    static final int FIELD_TYPE_INTEGER = 1;


    /** Value returned by {@link #getType(int)} if the specified column type is float */
    static final int FIELD_TYPE_FLOAT = 2;


    /** Value returned by {@link #getType(int)} if the specified column type is string */
    static final int FIELD_TYPE_STRING = 3;


    /** Value returned by {@link #getType(int)} if the specified column type is blob */
    static final int FIELD_TYPE_BLOB = 4;


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:136次
    • 积分:20
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档