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

时间:2012-11-18 00:09:31

标签: objective-c

我有一个可能永远存在的数字,比如〜0.999999 ...

见:

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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

如果myNumber大于或等于25,那么它至少可以除以25。