<cfenv> হেডারের fesetround() এবং fegetround() ফাংশনগুলো ফ্লোটিং-পয়েন্ট রাউন্ডিং মোড সেট ও গেট করতে ব্যবহৃত হয়। এটি rint(), nearbyint() ইত্যাদি ফাংশনের আচরণ নিয়ন্ত্রণ করে।
fesetround() - রাউন্ডিং মোড সেট করা
সিনট্যাক্স: int fesetround(int round);
ম্যাক্রো: FE_TONEAREST, FE_DOWNWARD, FE_UPWARD, FE_TOWARDZERO
উদাহরণ
#include <cfenv>
#include <cmath>
#include <iostream>
using namespace std;
int main() {
double x = 4.7, ans;
fesetround(FE_TONEAREST); ans = rint(x); cout << "Nearest: " << ans << endl; // 5
fesetround(FE_TOWARDZERO); ans = rint(x); cout << "Toward zero: " << ans << endl; // 4
fesetround(FE_DOWNWARD); ans = rint(x); cout << "Downward: " << ans << endl; // 4
fesetround(FE_UPWARD); ans = rint(x); cout << "Upward: " << ans << endl; // 5
return 0;
}
আউটপুট
Nearest: 5 Toward zero: 4 Downward: 4 Upward: 5
fegetround() - বর্তমান রাউন্ডিং মোড জানা
সিনট্যাক্স: int fegetround();
রিটার্ন করে বর্তমান রাউন্ডিং ম্যাক্রোর ভ্যালু।
উদাহরণ
void float_direction() {
switch (fegetround()) {
case FE_TONEAREST: cout << "FE_TONEAREST"; break;
case FE_DOWNWARD: cout << "FE_DOWNWARD"; break;
case FE_UPWARD: cout << "FE_UPWARD"; break;
case FE_TOWARDZERO: cout << "FE_TOWARDZERO"; break;
default: cout << "unknown";
}
cout << endl;
}
ব্যবহার: ফাইন্যানসিয়াল ক্যালকুলেশন, গ্রাফিক্স, সায়েন্টিফিক কম্পিউটেশনে প্রিসিশন নিয়ন্ত্রণের জন্য গুরুত্বপূর্ণ।