[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])];
}