我有一个可能永远持续下去的数字,比如~0.999999 ...
看到这个:
while (myNumber / 25 > 0.999999)
{
// do stuff
}
如何在 Objective-C 中正确表示该数字?
或者也许我做这个while
循环不正确,有人可以告诉我如何解决它?我正在尝试查看是否myNumber
可以至少除以 25 一次……所以即使是 26/25 也会通过(%
在这种情况下 mod 不起作用)。
我有一个可能永远持续下去的数字,比如~0.999999 ...
看到这个:
while (myNumber / 25 > 0.999999)
{
// do stuff
}
如何在 Objective-C 中正确表示该数字?
或者也许我做这个while
循环不正确,有人可以告诉我如何解决它?我正在尝试查看是否myNumber
可以至少除以 25 一次……所以即使是 26/25 也会通过(%
在这种情况下 mod 不起作用)。
对你来说幸运的是,这个重复的小数在浮点运算中有一个精确的表示(你不必四舍五入):
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
如果 myNumber 大于或等于 25,则至少可以将其除以 25 一次。