0
我一直在做这个到处如何将有符号整数舍入为零?
NSInteger myint = -3;
// ...
NSUInteger myuint = myint >= 0 ? myint : 0;
是否有目标C数学函数,可以做同样的事情,而不使用三元/有条件分配?事情是这样的:
NSUInteger myuint = rounduptozero(myint);
我一直在做这个到处如何将有符号整数舍入为零?
NSInteger myint = -3;
// ...
NSUInteger myuint = myint >= 0 ? myint : 0;
是否有目标C数学函数,可以做同样的事情,而不使用三元/有条件分配?事情是这样的:
NSUInteger myuint = rounduptozero(myint);
要么使用:
NSUInteger myuint = MAX(myint, 0);
或定义自己的rounduptozero
功能:
NSUInteger rounduptozero(NSInteger val) {
return MAX(val, 0);
}
NSUInteger myuint = rounduptozero(mint);
MAX中定义的Objective-C运行(更具体地说,它是在NSObjCRuntime,它包含在Foundation框架中),所以你可以安全地使用MAX(值,0)。
如果你在所有地方都使用它,我建议将该宏包装在你自己的(或函数中)以便清晰。
为什么我不能使用表达式作为其中一个参数,比如'MAX(myint1 - myint2,0)'?它只是给了我一个'NSNotFound'。 – zakdances
你可以做到这一点。你为什么不认为你可以? – rmaddy
当我尝试时,它给了我一个'NSNotFound'值。但是当我首先声明与变量相同的表达式时,它可以正常工作。 – zakdances