[objective-c] Objective-C에서 절대 값으로 변환

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 헤더에는 ABS()유형에 구애받지 않는 매크로 도 포함되어 있습니다. ABS()그러나 부작용 안전하다고 보장되지는 않지만 사용하지 않는 것이 좋습니다 . 예를 들어 ABS(a++)정의되지 않은 결과가 나타납니다.


C ++ 또는 Objective-C ++를 <cmath>사용 std::abs()하는 경우 모든 표준 정수 및 부동 소수점 유형에 대해 템플릿 화 된 헤더를 가져 와서 사용할 수 있습니다.


답변

이 함수를 사용하여 절대 값을 얻을 수 있습니다.

+(NSNumber *)absoluteValue:(NSNumber *)input {
  return [NSNumber numberWithDouble:fabs([input doubleValue])];
}


답변