2

我有一个可能永远持续下去的数字,比如~0.999999 ...

看到这个:

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

如何在 Objective-C 中正确表示该数字?

或者也许我做这个while循环不正确,有人可以告诉我如何解决它?我正在尝试查看是否myNumber可以至少除以 25 一次……所以即使是 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,则至少可以将其除以 25 一次。

于 2012-11-18T00:13:19.870 回答