当我在Objective-C中进行模运算时,我得到的结果有点吓人了. -1%3出来是-1,这是不正确的答案:根据我的理解,应该是-2.2%3出来到-2,这也是不对的:应该为1.
除了%运算符之外,我还应该使用另外一种方法来获得正确的结果吗?
解决方法
Objective-C是C99的超集,C99定义当a为负时,%b为负.另见
the Wikipedia entry on the Modulo operation和
this StackOverflow question.
像(a> = 0)? (a%b):((a%b)b)(未经测试,可能有不必要的括号)应给您所需的结果.