2

~0.999999 のように、永遠に続く可能性のある数値を持っています...

これを参照してください:

while (myNumber / 25 > 0.999999)
{
   // do stuff
}

Objective-Cでその数を適切に表現するにはどうすればよいですか?

または、このwhileループを間違って実行していて、誰かがそれを修正する方法を教えてくれますか? 少なくとも 1 回は 25 で割ることができるかどうかを確認しようとしてmyNumberいます... 26/25 でも合格です (%この場合、mod は機能しません)。

4

2 に答える 2

5

幸いなことに、この繰り返し小数は、浮動小数点演算で正確に表現されます (丸める必要はありません)。

while (myNumber / 25 > 1)
{
    // do stuff
}

これは、「0.999999...」と「1」は同じ数字の書き方が違うだけだからです。それらは異なる数ではありません。

あるいは、次のようにしたいかもしれません:

while (myNumber / 25 >= 1)

が負でない整数の場合myNumber、これは実際には次と同じです。

while (myNumber / 25) // nonzero values are "true"

または、同等のものに翻訳できます。

while (myNumber >= 25) // no need to divide
于 2012-11-18T00:13:57.990 に答える
1

myNumber が 25 以上の場合、少なくとも 1 回は 25 で割ることができます。

于 2012-11-18T00:13:19.870 に答える