1

大家好,这里是我的问题:我如何将浮点数减少到小数?%.1 对我来说是最好的,但是当我与 unNumero= 1.7f 之类的另一个浮点数进行比较时,代码不会这样做。我认为是因为浮点数更多。我该如何解决这个问题。我需要将 stopCrono 的结果与一些随机浮点数进行比较,但限制为 2 位小数。对不起,我的英语不是我的母语。这是我的代码

-(void)startCrono:(ccTime)delta {

totalTime += delta  ;
currentTime = totalTime;
timeLimit = 2.0f;
[timeLabel setString:[NSString stringWithFormat:@"%.1f ",currentTime ]];
if (currentTime >= timeLimit) {

    [self unschedule:_cmd];
    }

} -(void)stopCrono:(ccTime)crono2{

[self unschedule:@selector(startCrono:)];
unNumero = 1.7f;

if(unNumero == currentTime){

    CCLOG(@"OK");
}

}

当我在 1.7 中停止我的 crono 时,如果状态不工作 CClog 不打印 OK

4

1 回答 1

1

因为浮点数学并不精确,所以使用 == 运算符比较两个浮点值以查看它们是否相等通常不会产生您期望的结果。我向您推荐Bruce Dawson 的这篇文章,它是关于浮点数的优秀系列的一部分,以了解如何以正确的方式比较浮点值(提示:它比看起来要困难得多)。

于 2012-11-18T08:29:09.147 回答