我正在尝试使用 -60 到 60 之间的 arc4random 获得一个随机数。我生成 1 到 120 之间的 avnumber,然后减去 60。
如果这是在一行中,每当数字为负时,我都会得到奇怪的结果。
//Loop illustrates point better.
while (1) {
//Gets garbage numbers approximately half the time (when random1 should be negative)
NSInteger random1 = 1 + (arc4random() %120) - 60;
NSLog (@"random1: %li", random1);
//Essentially same thing, but works fine.
NSInteger random2 = 1 + (arc4random() %120);
NSInteger random3 = random2 - 60;
NSLog (@"random2: %li random3: %li", random2, random3);
}
为什么会这样?