Objective c sqlite3\u列\u双精度问题

Objective c sqlite3\u列\u双精度问题,objective-c,double,Objective C,Double,我觉得我在问一个愚蠢的问题。从数据库检索浮点值时遇到问题 数据库中的字段(无论我将其设置为float还是double,我都尝试过) 有价值 -3.218364 使用sqlite3\u column\u double读取值时,返回值 194586 我尝试过各种组合,使用float、double、NSNumber、CLLocationDegrees存储,但一点运气都没有 我在这里有多蠢,我在以前的应用程序中使用过小数,没有问题。但我不知道我做错了什么 感谢大家的帮助 只要绑定正确的值并使用正确的索引

我觉得我在问一个愚蠢的问题。从数据库检索浮点值时遇到问题

数据库中的字段(无论我将其设置为float还是double,我都尝试过) 有价值

-3.218364

使用sqlite3\u column\u double读取值时,返回值

194586

我尝试过各种组合,使用float、double、NSNumber、CLLocationDegrees存储,但一点运气都没有

我在这里有多蠢,我在以前的应用程序中使用过小数,没有问题。但我不知道我做错了什么


感谢大家的帮助

只要绑定正确的值并使用正确的索引,SQLite就会存储和检索正确的值

e、 g


除非

  • 您插入了错误的值
  • 您正在从错误的索引中检索

  • 尝试NSNumber*number=[NSNumber numberWithFloat:(float)sqlite3_column_double(stmt,col)]//NSLog(@“float=%f”,[number floatValue]);它返回194586.000000,而不是您是如何保存它的
    sqlite3\u bind\u double
    ?请记住,绑定的索引是基于1的,而检索的索引是基于0的。结果表明,客户端为我提供了错误的数据库!谢谢你抽出时间。非常感激啊,所以问题是插入了错误的值:)我知道出了问题。
    //prepare insert statement ...
    sqlite3_bind_double(statement, 1, -3.218364); //Binding is 1 based
    
    //.. retrieve
    double dv = sqlite3_column_double(statement, 0); //Retrieving is 0 based