Objective-C中的模运算符返回错误的结果

Gre*_*tic 9 math objective-c modulo

当我在Objective-C中进行模运算时,我得到的结果让我有点吓坏了.-1%3现在是-1,这不是正确的答案:根据我的理解,它应该是2. -2%3出现-2,这也是不对的:它应该是1.

除了%运算符之外,我还应该使用另一种方法来获得正确的结果吗?

Isa*_*aac 7

Objective-C是C99的超集,C99定义a % b为负数时a为负数.另请参阅关于Modulo操作的Wikipedia条目此StackOverflow问题.

(a >= 0) ? (a % b) : ((a % b) + b)(没有经过测试,可能有不必要的括号)的东西应该给你想要的结果.