উদ্দেশ্য-সিতে পরম মানেরে রূপান্তর করুন


187

আমি কীভাবে নেতিবাচক সংখ্যাকে অবজেক্টিভ-সি-তে পরম মানে রূপান্তর করব?

অর্থাত

-10

হয়ে

10?


3
@ সালভাদোরডালি: এসও-তে কোনও ভুল নেই; প্রশ্নটি চেষ্টা করে নি এবং এসও নির্দেশিকাগুলি অনুসরণ করে না, যখন উত্তরটি গভীরতা এবং সঠিক।
জোসেয়ে এস্পিনোসা

উত্তর:


458

আপনার ভেরিয়েবলের ধরন, এক উপর নির্ভর করে abs(int), labs(long), llabs(long long), imaxabs(intmax_t), fabsf(float), fabs(double), অথবা fabsl(long double)

এই ফাংশনগুলি সি স্ট্যান্ডার্ড লাইব্রেরির সমস্ত অংশ, এবং তাই উদ্দেশ্য-সি এবং প্লেইন সি উভয় উপস্থিত রয়েছে (এবং সাধারণত সি ++ প্রোগ্রামগুলিতেও উপলব্ধ))

(হায় আফসোস, কোন habs(short)ফাংশন নেই Or বা scabs(signed char)সেই বিষয়ে ...)


অ্যাপল এবং জিএনইউ এর উদ্দেশ্য-সি শিরোনামে একটি ABS()ম্যাক্রো অন্তর্ভুক্ত রয়েছে যা টাইপ-অজোনস্টিক ost ABS()তবে তবে এটি ব্যবহার করার পরামর্শ দিচ্ছি না কারণ এটি পার্শ্ব-প্রতিক্রিয়া-নিরাপদ হওয়ার গ্যারান্টিযুক্ত নয়। উদাহরণস্বরূপ, ABS(a++)একটি অপরিবর্তিত ফলাফল থাকবে।


আপনি যদি সি ++ বা অবজেক্টিভ-সি ++ ব্যবহার করছেন তবে আপনি <cmath>শিরোনাম আনতে এবং ব্যবহার করতে পারেন std::abs()যা সমস্ত স্ট্যান্ডার্ড পূর্ণসংখ্যার এবং ভাসমান-পয়েন্টের ধরণের জন্য শিষ্ট।


33
অথবা আপনি ABS ম্যাক্রো ব্যবহার করতে পারেন যা কোনও সংখ্যার ধরণের ক্ষেত্রে কাজ করে।
ughoavgfhw

1
@ যুগ্মসামান্য ABS()কিছু সমস্ত সংকলকগুলিতে পার্শ্ব-প্রতিক্রিয়া নিরাপদ নয়, তবে, এজন্যই আমি এটি ব্যবহার করার পরামর্শ দিই না।
জোনাথন গ্রিনস্পান

এটি আসলে: ফেবসফ (ডাবল) কল্পিত (ভাসমান)
অ্যালেক্স

@ অ্যালেক্স নং, এইগুলি গণিতে এই সংজ্ঞা রয়েছে:extern float fabsf(float); extern double fabs(double);
গোব

3

পরম মান পেতে আপনি এই ফাংশনটি ব্যবহার করতে পারেন:

+(NSNumber *)absoluteValue:(NSNumber *)input {
  return [NSNumber numberWithDouble:fabs([input doubleValue])];
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.