Проблема с sqlite3_column_double
У меня такое чувство, что я задаю глупый вопрос здесь. У меня проблемы с получением значений с плавающей точкой из базы данных.
Поле в базе данных (независимо от того, установил ли я значение типа float или double, я пробовал оба) имеет значение
-3,218364
При чтении значения с использованием sqlite3_column_double оно возвращает значение
194586
Я пробовал всевозможные комбинации, сохраняя их с помощью float, double, NSNumber, CLLocationDegrees, но безуспешно.
Как глупо, что я здесь, я использовал десятичные дроби в предыдущем приложении без проблем. Но я не могу понять, что я здесь сделал неправильно.
Вся помощь приветствуется!
1 ответ
SQLite будет хранить и извлекать правильное значение, пока вы связываете правильное значение и используете правильные индексы.
например
//prepare insert statement ...
sqlite3_bind_double(statement, 1, -3.218364); //Binding is 1 based
//.. retrieve
double dv = sqlite3_column_double(statement, 0); //Retrieving is 0 based
Вы не должны получать другое значение, если
- Вы вводите неправильное значение
- Вы получаете из неправильного индекса