2009-10-08 48 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); 

此代碼爲我工作..