У меня возникли проблемы с запуском нескольких простых операторов SQLite3 на Android.
Например:
SELECT 1234 + 0.001
Это должно вернуть 1234.001, верно? Однако SQLite возвращает 1234 как на эмуляторе (v21), так и на реальном устройстве (v19).
Учитывая, что 1234 хранится в столбце с именем Field1, тип REAL, в Table1, я пробовал все варианты ниже:
SELECT Field1 + 0.001 FROM Table1
SELECT (Field1 * 1.000) + 0.001 FROM Table1
SELECT CAST(Field1 as FLOAT) + 0.001 FROM Table1
SELECT CAST(Field1 as REAL) + 0.001 FROM Table1
SELECT Field1 + 0.001 from Table1
SELECT CAST((Field1 + 0.001) as REAL) FROM Table1
Кажется, ничего не работает, и в каждом отдельном случае я получаю 1234 вместо 1234.001. Мне нужно получить 1234.001 из 1234 в запросе, но SQLite3 не помогает.
Еще одна вещь, которую я только что обнаружил: если "Field1" ‹= 999, SELECT работает, как и ожидалось, и в результате я получаю 999,001. Все, что >= 1000, вместо этого дает мне целое число.
Не могли бы вы помочь мне, как это решить?
cursor.getString()
, и я думаю, что это было виновником. - person AlxDroidDev   schedule 19.07.2016