কম্পিউটার

C++ এ Fesetround() এবং fegetround()


এখানে আমরা C++ এ fesetround() এবং fegetround() পদ্ধতি দেখতে পাব। এই পদ্ধতিগুলো cfenv লাইব্রেরিতে পাওয়া যাবে।

fesetround() পদ্ধতিটি নির্দিষ্ট ফ্লোটিং পয়েন্ট রাউন্ডিং দিককে বর্তমান রাউন্ডিং দিকনির্দেশে সেট করতে ব্যবহৃত হয়। এটি rint(), nearbyint() এবং C++ এ কিছু অন্যান্য রাউন্ডিং ফাংশনের সাথে ব্যবহৃত হয়।

সিনট্যাক্স নিচের মত -

int fesetround(int round);

রাউন্ডটি এই FE_TONEAREST, FE_DOWNWARD, FE_UPWARD ইত্যাদির মধ্যে হতে পারে৷ এই ফাংশনটি 0 প্রদান করে যখন রাউন্ডিং দিকনির্দেশ সফলভাবে প্রয়োজনীয় পদ্ধতিতে প্রয়োগ করা হয়৷

উদাহরণ

#include <cfenv >
#include <cmath>
#include <iostream>
using namespace std;
main() {
   double x = 4.7, ans;
   fesetround(FE_TONEAREST); //round to nearest integer
   ans = rint(x);
   cout << "Nearest Integer is: " << ans << endl;
   fesetround(FE_TOWARDZERO); //rounding towards zero
   ans = rint(x);
   cout << "Rounding towards 0, value is: " << ans << endl;
   fesetround(FE_DOWNWARD); //rounding to downwards
   ans = rint(x);
   cout << "Nearest Integer below the number: " << ans << endl;
   fesetround(FE_UPWARD); //rounding to upwards
   ans = rint(x);
   cout << "Nearest Integer above the number: " << ans << endl;
}

আউটপুট

Nearest Integer is: 5
Rounding towards 0, value is: 4
Nearest Integer below the number: 4
Nearest Integer above the number: 5

এখন দেখা যাক fegetround() পদ্ধতিটি ফ্লোটিং পয়েন্ট রাউন্ডিং ম্যাক্রো পেতে ব্যবহৃত হয় যা বর্তমান রাউন্ডিং দিকনির্দেশের সাথে মিলে যায়। এই ফাংশনটি rint(), nearbyint() এবং C++ এ কিছু অন্যান্য রাউন্ডিং পদ্ধতির সাথে ব্যবহার করা হয়।

সিনট্যাক্স নিচের মত -

int fegetround();

এটি ফ্লোটিং পয়েন্ট রাউন্ডিং ম্যাক্রোর সাথে সম্পর্কিত সংখ্যা প্রদান করে।

  • FE_DOWNWARD
  • FE_TONEAREST
  • FE_TOWARDZERO
  • FE_UPWARD

উদাহরণ

#include <cfenv >
#include <cmath>
#include <iostream>
using namespace std;
void float_direction() {
   switch (fegetround()) {
      case FE_TONEAREST:
         cout << "Macro is: FE_TONEAREST";
      break;
      case FE_DOWNWARD:
         cout << "Macro is: FE_DOWNWARD";
      break;
      case FE_UPWARD:
         cout << "Macro is: FE_UPWARD";
      break;
      case FE_TOWARDZERO:
         cout << "Macro is: FE_TOWARDZERO";
      break;
      default:
         cout << "unknown";
   };
   cout << endl;
}
main() {
   double x = 4.7, ans;
   fesetround(FE_TONEAREST); //round to nearest integer
   ans = rint(x);
   cout << "Nearest Integer is: " << ans << endl;
   float_direction();
   fesetround(FE_TOWARDZERO); //rounding towards zero
   ans = rint(x);
   cout << "Rounding towards 0, value is: " << ans << endl;
   float_direction();
   fesetround(FE_DOWNWARD); //rounding to downwards
   ans = rint(x);
   cout << "Nearest Integer below the number: " << ans << endl;
   float_direction();
   fesetround(FE_UPWARD); //rounding to upwards
   ans = rint(x);
   cout << "Nearest Integer above the number: " << ans << endl;
   float_direction();
}

আউটপুট

Nearest Integer is: 5
Macro is: FE_TONEAREST
Rounding towards 0, value is: 4
Macro is: FE_TOWARDZERO
Nearest Integer below the number: 4
Macro is: FE_DOWNWARD
Nearest Integer above the number: 5
Macro is: FE_UPWARD

  1. C++ এ ধাঁধার আগে এবং পরে

  2. Go এবং C++ এর মধ্যে পার্থক্য।

  3. fmax() এবং fmin() C++ এ

  4. C++ এ ডিলিট() এবং ফ্রি()