Проблема с 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


Вы не должны получать другое значение, если

  1. Вы вводите неправильное значение
  2. Вы получаете из неправильного индекса
Другие вопросы по тегам