sqlite表中的小数点?

时间:2010-02-13 21:08:58

标签: ios iphone database sqlite sdk

我正在尝试使用我的sqlite表中的小数点来显示浮点数。我已经在下面的代码中包含了它在游戏中的表现如何都很好。以及在关卡结束时发生的事情。以及它如何更新到sqlite表。它在游戏过程中以十进制的形式出现了很好的效果,但是在它之后以.0记录整个数字。因此,如果最终时间是52.4,它将显示为52.0。我将字段类型设置为FLOAT。请帮忙。

以下是它在游戏中的表现方式,计算时间为十分之一秒。

-(void)updateTimerLabel{

if(appDelegate.gameStateRunning == YES){
timeSeconds-= 0.1;
timerLabel.text=[NSString stringWithFormat:@"Time: %.1f", timeSeconds];
}
}

这是关卡结束的代码......

-(void) endLevel{
if(appDelegate.easymediumhard ==2){

    if(gameVarLevel!=5){
        stageCompleted = [[UIAlertView alloc] initWithTitle:@"Sweet!" message:@"Level Completed. Play next level?" delegate:self cancelButtonTitle:@"Yes" otherButtonTitles:@"No", nil];
    }

    else if(gameVarLevel == 5){
        globalScore = timeSeconds;
        if(appDelegate.ScoreID==0)
        {
            appDelegate.ScoreID=[appDelegate InsertGame]; 
        }
        else{

            [appDelegate updateScores:appDelegate.ScoreID];
        }

        stageCompleted = [[UIAlertView alloc] initWithTitle:@"Sweet!" message:@"All Levels Complete!\n Play again?" delegate:self cancelButtonTitle:@"Yes" otherButtonTitles:@"No", nil];
    }
    }
}

这就是它如何更新到表...

-(void)updateScores:(NSInteger)Primary_key
{
    sqlite3_stmt *statement=nil;
    NSString  *sql=nil; 
    @try
    {
        statement=nil;
        sql=nil;

if(easymediumhard == 2){
            sql=[NSString stringWithFormat:@"update tblHard set Score=? where id=%d",Primary_key];
        }
if(sqlite3_prepare_v2(database, [sql UTF8String], -1, &statement, NULL)!=SQLITE_OK)
        {
            NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
        }

        sqlite3_bind_int(statement, 1, globalScore);

        int success=sqlite3_step(statement);

        if (success == SQLITE_ERROR) {

            NSAssert1(0, @"Error: failed to insert into the database with message '%s'.", sqlite3_errmsg(database));
        }
        sqlite3_finalize(statement);
        statement=nil;
        sql=nil;
    }
    @catch (NSException *e) 
    {
        NSLog(@"asd");
    }
}

1 个答案:

答案 0 :(得分:0)

使用sqlite3_bind_double代替sqlite3_bind_int。并确保globalScore实际上是一个浮点变量(您发布的代码并不清楚它是否是一个)。