在Objective-C中转换为绝对值
如何在Objective-C中将负数转换为绝对值?
即
-10
变
10?
取决于variables的types, abs(int)
, labs(long)
, llabs(long long)
, imaxabs(intmax_t)
, fabsf(float)
, fabs(double)
或fabsl(long double)
。
这些函数都是C标准库的一部分,所以在Objective-C和普通C语言中都存在(并且通常也可以在C ++程序中使用)。
(唉,没有habs(short)
function,或者scabs(signed char)
…)
Apple和GNU的Objective-C头文件还包含一个types不可知的ABS()
macros。 我不推荐使用ABS()
但是不能保证副作用安全。 例如, ABS(a++)
将会有一个未定义的结果。
如果您使用的是C ++或Objective-C ++,则可以引入<cmath>
头文件并使用std::abs()
,该模板用于所有标准整数和浮点types。
你可以使用这个函数来获得绝对值:
+(NSNumber *)absoluteValue:(NSNumber *)input { return [NSNumber numberWithDouble:fabs([input doubleValue])]; }