如何将有符号整数舍入为零?

时间:2013-12-03 19:03:05

标签: objective-c math integer

我到处都这样做

NSInteger myint = -3;

// ...

NSUInteger myuint = myint >= 0 ? myint : 0;

在Objective C中是否有一个数学函数可以在不使用三元/条件赋值的情况下执行相同的操作?像这样:

NSUInteger myuint = rounduptozero( myint );

2 个答案:

答案 0 :(得分:2)

使用:

NSUInteger myuint = MAX(myint, 0);

或定义您自己的rounduptozero函数:

NSUInteger rounduptozero(NSInteger val) {
    return MAX(val, 0);
}

NSUInteger myuint = rounduptozero(mint);

答案 1 :(得分:0)

MAX在objective-c运行时中定义(更具体地说,它在NSObjCRuntime中,它包含在Foundation框架中),因此您可以安全地使用MAX(value,0)。

如果你在整个地方使用它,为了清楚起见,我建议你自己(或在一个函数中)包装宏。