Як перетворити від'ємне число в абсолютне значення в Objective-C?
тобто
-10
стає
10?
Як перетворити від'ємне число в абсолютне значення в Objective-C?
тобто
-10
стає
10?
Відповіді:
В залежності від типу змінної, один з abs(int), labs(long), llabs(long long), imaxabs(intmax_t), fabsf(float), fabs(double), або fabsl(long double).
Ці функції є частиною стандартної бібліотеки С, і тому вони присутні як в Objective-C, так і в простому C (і зазвичай вони також доступні в програмах C ++.)
(На жаль, habs(short)функцій немає . Або scabs(signed char)з цього приводу ...)
Заголовки Apple і GNU Objective-C також містять ABS()макрос, який є типово-агностичним. ABS()Однак я не рекомендую використовувати, оскільки це не є безпечним для побічних ефектів. Наприклад, ABS(a++)матиме невизначений результат.
Якщо ви використовуєте C ++ або Objective-C ++, ви можете ввести <cmath>заголовок і використовувати std::abs(), що шаблонується для всіх стандартних цілих чисел і плаваючих точок.
ABS()не є безпечним для всіх компіляторів, тому я не рекомендую його використовувати.
extern float fabsf(float); extern double fabs(double);
Ви можете використовувати цю функцію для отримання абсолютного значення:
+(NSNumber *)absoluteValue:(NSNumber *)input {
return [NSNumber numberWithDouble:fabs([input doubleValue])];
}