gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:20:38 26 4
gpt4 key购买 nike

我正在使用以下代码

     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 获取(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。在我的应用程序中,我需要精确存储的内容。这是什么行为?我该如何解决这个问题?

最佳答案

我在使用 SQLite 时使用这些方法:

public static Double stringToDouble (String x)
{
if (x !=null)
return Double.parseDouble(x);

return null;
}

public static String doubleToString (Double y)
{
if (y != null)
return String.valueOf(y);

return null;
}

添加到数据库时,将 double 值转换为字符串,反之亦然,请告诉我此解决方案是否有效

编辑:解决方案在评论中:“我看到您使用 STRING 字段创建了表。您可以尝试使用 TEXT 类型,这对我有用。”

关于java - SQlite 数据库不将 double 值存储为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com