Как вы читаете плавающие числа (REAL) из базы данных sqlite на iphone? - PullRequest
5 голосов
/ 08 октября 2009

Мне нужно прочитать десятичные числа с плавающей точкой из sqlite db

Я создал тип переменной в базе данных как INTEGER

Я читаю с sqlite3_column_int для переменных NSInteger

какие части должны быть изменены, чтобы я мог читать целые числа с плавающей точкой из базы данных

спасибо за ответы, извините, я новичок в этой теме

Ответы [ 4 ]

13 голосов
/ 08 октября 2009

Нет такого понятия, как целое число с плавающей точкой. Они являются взаимоисключающими на фундаментальном уровне (хорошо числа с плавающей запятой могут падать на целочисленные границы, но вы поняли): P.

Но способ вывести поплавки - использовать функцию sqlite3_column_double(sqlite3_stmt *, int).

NSNumber *f = [NSNumber numberWithFloat:(float)sqlite3_column_double(stmt, col)];
5 голосов
/ 08 октября 2009

Объявите поля как число с плавающей запятой. С тип данных sqllite doc тип базы данных - РЕАЛЬНЫЙ. Это 8-байтовое число с плавающей точкой, которое является типом Objective-C double, NSDouble или NSNumber.

2 голосов
/ 18 декабря 2012
NSNumber *num;
int temp = (float)sqlite3_column_double(walkstatement, 3);
num = [[NSNumber alloc]initWithInt:temp];
NSLog(@"%@",num);

Этот код работал для меня ..

0 голосов
/ 08 октября 2009

Для получения дополнительной информации sqlite3 использует систему динамических типов данных. так что-нибудь мимо этого:

  • NULL
  • INTEGER
  • РЕАЛЬНЫЙ
  • TEXT
  • BLOB

- это просто подсказки для sqlite (технически, сходство), и он сам решит, какой он тип или нет.

http://www.sqlite.org/datatype3.html

функции, которые возвращают double, ints и т. Д., Являются частью API sqlite C, стараются изо всех сил дать вам то, что вы хотите .... так что то, что хранится в столбце, потенциально может быть преобразовано в sqlite, если вы спрашиваете Ибо отличается от того, что в БД.

http://www.sqlite.org/c3ref/column_blob.html

на полпути, есть удобный столик, который даст вам знать, чего ожидать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...