如何在 Objective-C 中将负数转换为绝对值?
即
-10
变成
10?
最佳答案
根据变量的类型,abs(int)
之一, labs(long)
, llabs(long long)
, imaxabs(intmax_t)
, fabsf(float)
, fabs(double)
, 或 fabsl(long double)
.
这些函数都是 C 标准库的一部分,因此存在于 Objective-C 和普通 C 中(通常也可以在 C++ 程序中使用。)
(唉,没有 habs(short)
函数。或者 scabs(signed char)
就这件事......)
Apple 和 GNU 的 Objective-C header 还包括 ABS()
与类型无关的宏。我不推荐使用 ABS()
但是,因为它不能保证是副作用安全的。例如,ABS(a++)
将产生未定义的结果。
如果您使用 C++ 或 Objective-C++,您可以引入 <cmath>
header 和使用 std::abs()
,为所有标准整数和浮点类型模板化。
https://stackoverflow.com/questions/4717060/