如何在Objective-C/iOS中表示无限数~0.9999 .....

Eth*_*len 2 objective-c

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

看到这个:

while (myNumber / 25 > 0.999999)
{
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

或者我可能while不正确地做这个循环,有人可以告诉我如何解决它?我试图看看是否myNumber可以至少划分25次......所以即使26/25也会通过(%在这种情况下mod 不起作用).

Die*_*Epp 5

幸运的是,这个重复的十进制数在浮点运算中有一个精确的表示(你不必舍入):

while (myNumber / 25 > 1)
{
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

这是因为"0.999999 ......"和"1"只是编写相同数字的不同方式.他们没有不同的数字.

或许你想这样做:

while (myNumber / 25 >= 1)
Run Code Online (Sandbox Code Playgroud)

如果myNumber是非负整数,那么这实际上与:

while (myNumber / 25) // nonzero values are "true"
Run Code Online (Sandbox Code Playgroud)

或者,您可以将其翻译为等效的:

while (myNumber >= 25) // no need to divide
Run Code Online (Sandbox Code Playgroud)