2009-10-08 7 views
5

은 내가 정수로 데이터베이스에 변수 유형을 만든아이폰의 sqlite 데이터베이스에서 부동 소수점 (REAL)을 읽는 방법은 무엇입니까?

SQLite는 DB에서 포인트 소수 부동 읽을 필요가

나는 부분이 이렇게 변경해야

부동 내가 읽을 수 NSInteger 변수에 sqlite3_column_int으로 읽고있다 데이터베이스에서 포인트 정수 답변

감사 미안 부동 소수점 숫자로 필드를 선언이 주제

답변

5

에 초보자 메신저. sqllite datatype doc에서 데이터베이스 유형은 REAL입니다. 이것은 Objective-C double, NSDouble 또는 NSNumber 유형 인 8 바이트 부동 소수점 숫자입니다.

+0

내가 두 번째이. 변수를 INTEGER 대신 REAL로 선언하고 sqlite3_column_double을 사용하여 값을 double로 읽습니다. – lostInTransit

+0

내게 sqllite 데이터 형식 의사를 가리키는 주셔서 감사합니다, 어딘가에 주위에 있지만 그 문서를 찾을 수 없다는 것을 알고 –

13

부동 소수점 정수는 없습니다. 그것들은 근본적인 수준에서 상호 배타적입니다. (부동 소수점 수는 정수 경계에 떨어질 수 있지만 아이디어를 얻습니다.) P.

하지만 float을 꺼내는 방법은 sqlite3_column_double(sqlite3_stmt *, int) 기능을 사용하는 것입니다.

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

그것은 대단히 감사합니다 –

-1

자세한 내용은 sqlite3에서 동적 데이터 형식 시스템을 사용하십시오. 그래서 지난 아무것도 :

  • NULL
  • INTEGER
  • REAL
  • TEXT
  • BLOB

단지 (기술적, 친 화성)이 sqlite 힌트, 그것이 끝날 것입니다 어떤 유형인지를 결정합니다. 등, 복식,의 int를 반환 SQLite는 C API의 일부입니다

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

기능 때문에 어떤 컬럼에 저장된하는 것은 잠재적으로 sqlite가로 변환 할 수 있습니다 .... 당신이 원하는 당신을 제공하기 위해 최선을 노력 네가 요구하는 것이 DB에있는 것과 다르다면.

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); 

..