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