Как преобразовать отрицательное число в абсолютное значение в Objective-C?
то есть.
-10
становится
10
Ответ 1
В зависимости от типа вашей переменной один из abs(int), labs(long), llabs(long long), imaxabs(intmax_t), fabsf(float), fabs(double) или fabsl(long double).
Эти функции являются частью стандартной библиотеки C и поэтому присутствуют как в Objective-C, так и в обычном C (и обычно доступны в программах на С++).
(Увы, функции habs(short) нет, или scabs(signed char), если на то пошло...)
Заголовки Apple и GNU Objective-C также включают макрос ABS()
, который является агностиком типа. Я не рекомендую использовать ABS()
, так как он не гарантированно защищен от побочных эффектов. Например, ABS(a++) будет иметь результат undefined.
Если вы используете С++ или Objective-C ++, вы можете ввести заголовок <cmath> и использовать std::abs(), который настроен для всех стандартных типов с целыми числами и с плавающей точкой.
Ответ 2
Вы можете использовать эту функцию для получения абсолютного значения: