Как преобразовать отрицательное число в абсолютное значение в Objective-C?
т.е.
-10
становится
10?
objective-c
redconservatory
источник
источник
Ответы:
В зависимости от типа переменной, один из
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)
в этом отношении ...)Заголовки Objective-C Apple и GNU также включают
ABS()
макрос, который не зависит от типа. Однако я не рекомендую использоватьABS()
его, так как он не гарантирует безопасность от побочных эффектов. Например,ABS(a++)
будет иметь неопределенный результат.Если вы используете C ++ или Objective-C ++, вы можете ввести
<cmath>
заголовок и использовать егоstd::abs()
, который шаблонируется для всех стандартных целочисленных типов и типов с плавающей точкой.источник
ABS()
не безопасен для всех компиляторов, поэтому я не рекомендую его использовать.extern float fabsf(float); extern double fabs(double);
Вы можете использовать эту функцию, чтобы получить абсолютное значение:
источник