在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])]; }