मैं उद्देश्य-सी में एक ऋणात्मक संख्या को निरपेक्ष मान में कैसे बदलूं?
अर्थात
-10
हो जाता है
10?
मैं उद्देश्य-सी में एक ऋणात्मक संख्या को निरपेक्ष मान में कैसे बदलूं?
अर्थात
-10
हो जाता है
10?
जवाबों:
अपने चर के प्रकार, में से एक पर निर्भर करता है abs(int), labs(long), llabs(long long), imaxabs(intmax_t), fabsf(float), fabs(double), या fabsl(long double)।
वे कार्य C मानक पुस्तकालय के सभी भाग हैं, और इसलिए दोनों उद्देश्य-सी और सादे C में मौजूद हैं (और आम तौर पर C ++ कार्यक्रमों में भी उपलब्ध हैं।)
(काश, कोई habs(short)फंक्शन नहीं होता। या scabs(signed char)उस बात के लिए ...)
ऐप्पल और जीएनयू के ऑब्जेक्टिव-सी हेडर में एक 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])];
}