2009-10-08 22 views

回答

5

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

+0

我第二本。将该变量声明为REAL而不是INTEGER,并使用sqlite3_column_double将该值作为double值读取。 – lostInTransit 2009-10-08 05:03:34

+0

感谢您指向我sqllite datatype doc,我知道它在某处,但我无法找到该文件 – 2009-10-08 08:43:33

13

有没有这样的事情作为一个浮点整数。它们在基本级别上是相互排斥的(好吧,浮点数可以落在整数边界上,但你明白了):P。

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

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

它的工作原理非常感谢 – 2009-10-08 08:42:14

-1

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

  • NULL
  • INTEGER
  • REAL
  • TEXT
  • BLOB

只是暗示对于SQLite(技术上,亲和力),它会结束自己决定它是或不是的类型。

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

返回双打,整数,等都是SQLite的C API的一部分职能尽力给你想要的东西....所以什么是存储在列有可能通过sqlite的转换如果你要求的是不同于数据库中的内容。

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

约中途下来,有一个方便的表会让你知道会发生什么。

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

此代码为我工作..