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