当前位置:  开发笔记 > 数据库 > 正文

在SQLite中存储double值:如何确保精度?

如何解决《在SQLite中存储double值:如何确保精度?》经验,为你挑选了1个好方法。

我有一个问题,我需要存储在android homed sqlite数据库中的双值.因为这些double值代表gps值(lat&lng),所以我真的NEED是绝对精度,直到逗号后的第9个数字.

现在我有一个这样的表:

CREATE TABLE x REAL lng;

并插入sth(硬编码),如:

INSERT INTO x lng = '1.0';

当从这个表读取lng到一些(java)双变量时,我得到一个像"0.999956837"的值 - 这使得这些值对我来说毫无用处.

有没有办法强制执行我需要的精度,除了将值存储为"文本"字段(什么会使昂贵的演员需要)或将它们存储为整数(意味着我需要在每次写/读操作时乘以/除)?



1> Pentium10..:

SQLite是无类型的,这意味着所有表示都是作为文本编写的,可能包装器api做了一些你不知道的转换,你得到了那些结果.

如果需要将数据存储为字符串,请执行此操作.

就在您读出double时,请确保以正确的格式保存,您可以getDouble在列上使用.


好吧 - 我发现了问题......这是我自己的错 - 我使用了"Cursor.getInt()"而不是getDouble() - 项目开头的旧遗物:(
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有