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

}

staetmentが機能していない場合、1.7でcronoを停止すると、CClogが印刷されません。

4

1 に答える 1

1

浮動小数点の計算は正確ではないため、2つの浮動小数点値を比較して、それらが==演算子と等しいかどうかを確認しても、通常、期待する結果は得られません。浮動小数点数に関する優れたシリーズの一部であるBruceDawsonによるこの記事をお勧めします。これは、浮動小数点値を適切な方法で比較する方法を理解するためです(ヒント:見た目よりもはるかに困難です)。

于 2012-11-18T08:29:09.147 に答える