java-SQlite 数据库不能存储double 值为字符串

问题描述

SQlite 数据库不能存储double 值为字符串

我使用下面的代码

 public boolean addArea(AreaClass area , ArrayList<AreaMarkClass> areaArray)
     {
         area.id =  getNextAreaId();
        Log.d("longitude", area.longitude);
        Log.d("latitude", area.latitude);

        ContentValues initialValues = new ContentValues();
        initialValues.put("_id", area.id);
        initialValues.put("name", area.name);
        initialValues.put("longitude", area.longitude);
        initialValues.put("latitude", area.latitude);
        initialValues.put("zoomLevel", area.zoomLevel);
        initialValues.put("creationDate",area.creationDate);

        try
        {
            mDb.insertOrThrow("TTArea", null, initialValues);
}

area.longitude 是一个字符串,它的值通过 String.value (A Double Value) 获得,现在通常是像 22.323434523464563456
但是当我检索这个值时:

public AreaClass getAreaClassWithAreaId(Integer id)
{
    String queryString = "SELECT * FROM TTArea WHERE _id = ?";
    Cursor resultSet =  mDb.rawQuery(queryString, new String[]{id.toString()});
    AreaClass area = new AreaClass();
    while(resultSet.moveToNext())
    {
         area = new AreaClass(
                        resultSet.getInt(resultSet.getColumnIndex("_id")),
                        resultSet.getString(resultSet.getColumnIndex("name")),
                        resultSet.getString(resultSet.getColumnIndex("longitude")),
                        resultSet.getString(resultSet.getColumnIndex("latitude")),
                        resultSet.getString(resultSet.getColumnIndex("zoomLevel")),
                        resultSet.getString(resultSet.getColumnIndex("creationDate"))
                        );
    }
    resultSet.close();
    return area;
}

大约是 22.3234。 在我的程序中我需要存储精确的数值。如何处理这个问题?

解决方案

以String类型保存到数据库里。
String longitude = String.valueOf(area.longitude);
String latitude = String.valueOf(area.latitude);
initialValues.put("longitude", longitude);
initialValues.put("latitude", latitude);

取值的时候用Double.parseDouble(longitude/latitude);

时间: 2024-08-09 21:26:41

java-SQlite 数据库不能存储double 值为字符串的相关文章

sqlite3-在 SQlite 数据库中存储 Null

问题描述 在 SQlite 数据库中存储 Null 我想实现下面的代码: String updateQuery ="INSERT INTO MAAccounts(userId, accountId, accountType, accountName, parentAccountId ) VALUES(?, ?, ?, ?, ?)"; Cursor c = mDb.rawQuery(updateQuery, new String[]{ stringToDB(account.userId)

sqlite-使用android的SQLite数据库能存储多大数据

问题描述 使用android的SQLite数据库能存储多大数据 看到网上说SQLite数据库的大小是2TB,但是我觉得这个数据库不应该跟手机内存相联系吗?android上的SQLite数据库真的能容纳下2TB的数据吗??? 解决方案 很明显android上的SQLite数据库是放不下2TB的数据 解决方案二: 一个是sqlite数据库本身最大容量,但是sqlite数据库文件是放在手机上的,所以它也会受到手机存储空间大小限制的.对于android程序,你不能占有太多空间.可以把一些数据放服务器上.

数据库-sqlserver存储返回值问题

问题描述 sqlserver存储返回值问题 存储中有设定输出参数output,当存储发生异常时,比如插入数据主键冲突,怎么把异常描述传给这个output值, 解决方案 1:在插入之前做判断,然后做插入,写到一个事务中,判断出现异常直接msg返回提示.2:catch捕获异常之后返回系统的异常,然后自己定义一个返回值把系统抛出的异常内容给自己定义的内容中.返回显示.具体操作就看你自己了,一般建议是插入之前判断.

android SQLite数据库 一次性存储多条数据

在开发当中往往要一次性的把很多的预设信息存到数据库.对于新手来说就是一个比较头疼的问题了. 不可能通过for循环一遍一遍的执行inert语句,这样的效率很低很低,在手机上存500条数据,好很长时间. 通过搜索网上资料,大致有三种方法: 1.通过";"拼字符串,如:"insert into table values (x,x,x);insert into table values (x,x,x);insert into table values (x,x,x);" 2

iOS - OC SQLite 数据库存储

前言 采用 SQLite 数据库来存储数据.SQLite 作为一中小型数据库,应用 iOS 中,跟前三种保存方式相比,相对比较复杂一些. 注意:写入数据库,字符串可以采用 char 方式,而从数据库中取出 char 类型,当 char 类型有表示中文字符时,会出现乱码.这是因为数据库默认使用 ASCII 编码方式.所以要想正确从数据库中取出中文,需要用 NSString 来接收从数据库取出的字符串. sqlite 的方法: sqlite3 *db 数据库句柄,跟文件句柄很类似 sqlite3_s

iOS - Swift SQLite 数据库存储

前言 采用 SQLite 数据库来存储数据.SQLite 作为一中小型数据库,应用 iOS 中,跟前三种保存方式相比,相对比较复杂一些. 注意:写入数据库,字符串可以采用 char 方式,而从数据库中取出 char 类型,当 char 类型有表示中文字符时,会出现乱码.这是因为数据库默认使用 ASCII 编码方式.所以要想正确从数据库中取出中文,需要用 NSString 来接收从数据库取出的字符串. sqlite 的方法: sqlite3 *db 数据库句柄,跟文件句柄很类似 sqlite3_s

SQLite数据库约束详解

一.约束 Constraints 在SQLite数据库中存储数据的时候,有一些数据有明显的约束条件. 比如一所学校关于教师的数据表,其中的字段列可能有如下约束: 年龄 - 至少大于20岁.如果你想录入一个小于20岁的教师,系统会报错. 国籍 - 默认中国.所谓默认,就是如果你不填写,系统自动填上默认值. 姓名 - 不能为空.每个人都有名字嘛. 员工号 - 唯一.这个可不能乱,工资发错了就麻烦了. 上面提到的大于.默认.不能为空.唯一等等,就是数据的约束条件. 我们在用CREATE TABLE 创

【ANDROID游戏开发十三】(保存游戏数据 [下文])详解SQLITE存储方式,并把SQLITE的数据库文件存储在SD卡中!!!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/329.html ----------------------- 『很多童鞋说我的代码运行后,点击home或者back后会程序异常,如果你也这样遇到过,那么你肯定没有仔细读完Himi的博文,第十九篇Himi专门写了关于这些错误的原因和解决方法,这里我在博客都补充说明下,省的童鞋们总疑惑这一块:请点击下面联系进入阅读:

详解Android数据存储—使用SQLite数据库

SQLite是Android自带的关系型数据库,是一个基于文件的轻量级数据库.Android提供了3种操作数据的方式,SharedPreference(共享首选项).文件存储以及SQLite数据库. SQLite数据库文件被保存在/data/data/package_name/databases目录下. 一.创建和删除表 1.创建表 创建表的SQL语句为: CREATE TABLE userInfo_brief ( id INTEGER PRIMARY KEY AUTOINCREMENT, na