我有一个可能永远存在的数字,比如〜0.999999 ...
见:
while (myNumber / 25 > 0.999999)
{
// do stuff
}
如何正确地在Objective-C中表示该数字?
或许我正在做这个while
循环错误,有人可以告诉我如何解决它?我试图看看myNumber
是否可以至少划分25次......所以即使26/25也会通过(mod %
在这种情况下不起作用。)
答案 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。