你如何从iphone上的sqlite数据库中读取浮点数(REAL)?

时间:2009-10-08 00:13:00

标签: iphone database sqlite floating-point

我需要从sqlite db

读取浮点小数

我在数据库中创建了变量类型为INTEGER

我正在使用sqlite3_column_int读取NSInteger变量

哪些部分应该更改,以便我可以从数据库中读取浮点整数

感谢您的回答对不起,我是这个主题的新手

4 个答案:

答案 0 :(得分:13)

没有浮点整数这样的东西。它们在基本层面上是互斥的(好的浮点数可以落在整数边界上,但你明白了):P。

但是获得浮动的方法是使用sqlite3_column_double(sqlite3_stmt *, int)函数。

NSNumber *f = [NSNumber numberWithFloat:(float)sqlite3_column_double(stmt, col)];

答案 1 :(得分:5)

将字段声明为浮点数。从sqllite datatype doc开始,数据库类型为REAL。这是一个8字节的浮点数,它是Objective-C double,NSDouble或NSNumber类型。

答案 2 :(得分:2)

NSNumber *num;
int temp = (float)sqlite3_column_double(walkstatement, 3);
num = [[NSNumber alloc]initWithInt:temp];
NSLog(@"%@",num);

此代码对我有用..

答案 3 :(得分:-1)

有关其他信息,sqlite3使用动态数据类型系统。所以过去这些:

  • NULL
  • INTEGER
  • REAL
  • TEXT
  • BLOB

只是sqlite的提示(技术上,亲和力),它最终决定它自己的类型或不是。

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

返回double,int等的函数是sqlite C API的一部分,尽量为你提供你想要的东西......所以如果你要问的话,存储在列中的内容可能会由sqlite转换for与db中的内容不同。

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

大约中途,有一个方便的桌子,可以让你知道会发生什么。