[英]Android - Save location in SQLite database
我在SQLite數據庫中保存緯度和經度時遇到問題。 我可以保存一些位置,例如(123.123999,123.123999),它將保存在數據庫中。 但是,如果我想閱讀它,則會得到(123.124,123.124)這樣的四舍五入位置。
我的表由這個sql段創建:
CREATE TABLE locs(id INTEGER PRIMARY KEY AUTOINCREMENT, lat DOUBLE, lng DOUBLE, num INTEGER)
並查詢結果:
SELECT * FROM locs WHERE lat = 123.124; //RETURN NO ROWS
SELECT * FROM locs WHERE lat = 123.123999; //RETURN 1 ROW
因此,我無法使用獲得的數字對數據進行查詢。
我相信我不是第一個處理此問題的人,因為這是基本的事情。 但是我沒有找到任何適用於SQLite數據庫的答案。
如何在數據庫中讀寫正確的數字?
如何在數據庫中讀寫正確的數字?
我建議您一個快速的解決方案。
既然你什么格式你存儲你的坐標EQ號知道,所以沒有將其保存為問題TEXT
,然后檢索它們作為TEXT
和簡單的執行解析回DOUBLE
如果你想要做的一些東西與他們。
CREATE TABLE locs(
id INTEGER PRIMARY KEY AUTOINCREMENT,
lat TEXT,
lng TEXT,
num INTEGER
)
您應該圍繞查詢的值定義一個epsilon,即
SELECT * FROM locs WHERE lat BETWEEN value-epsilon AND value+epsilon;
您可以根據需要更改epsilon。 在示例中,您給出的1e-3應該足夠。
另一種選擇是在插入值時四舍五入,但是這樣一來,您將丟失可能需要的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.