परिचय
यहां हम तीन फ़ंक्शन्स देखेंगे: rint(), rintf() और rintl()। ये फ़ंक्शन्स फ्लोटिंग-पॉइंट मानों को निकटतम पूर्णांक में राउंड करने के लिए उपयोग किए जाते हैं।
rint() फ़ंक्शन
यह फ़ंक्शन फ्लोटिंग-पॉइंट मान को पूर्णांक में राउंड करने के लिए उपयोग किया जाता है। सिंटैक्स:
float rint(float argument) double rint(double argument) long double rint(long double argument)
यदि परिणाम रिटर्न टाइप के बाहर है, तो डोमेन एरर हो सकता है। जब आर्गुमेंट 0 या इन्फिनिटी होता है, तो यह अनमॉडिफाइड रिटर्न करता है।
उदाहरण
#include <cmath>
#include <iostream>
using namespace std;
int main() {
double a, b, x, y;
x = 53.26;
y = 53.86;
a = rint(x);
b = rint(y);
cout << "The value of a: " << a << endl;
cout << "The value of b: " << b;
return 0;
}
आउटपुट
The value of a: 53 The value of b: 54
rintf() फ़ंक्शन
यह rint के समान है, लेकिन सभी पैरामीटर्स और रिटर्न टाइप float टाइप के हैं। इस उदाहरण में हम राउंड टाइप निर्दिष्ट करने के लिए fesetround() मेथड का उपयोग करेंगे।
float rintf(float argument)
उदाहरण: राउंडिंग मोड के साथ
#include <cmath>
#include <fenv.h>
#include <iostream>
using namespace std;
int main() {
double a, b, x, y;
x = 53.26;
y = 53.86;
fesetround(FE_UPWARD); // ऊपर की ओर राउंड
a = rintf(x);
fesetround(FE_DOWNWARD); // नीचे की ओर राउंड
b = rintf(y);
cout << "The value of a: " << a << endl;
cout << "The value of b: " << b;
return 0;
}
आउटपुट
The value of a: 54 The value of b: 53
rintl() फ़ंक्शन
यह rint के समान है, लेकिन सभी पैरामीटर्स और रिटर्न टाइप long double टाइप के हैं।
long double rintl(long double argument)
उदाहरण
#include <cmath>
#include <fenv.h>
#include <iostream>
using namespace std;
int main() {
double a, b, x, y;
x = 53547.55555555555;
y = 53547.55555555523;
fesetround(FE_UPWARD);
a = rintl(x);
fesetround(FE_DOWNWARD);
b = rintl(y);
cout << "The value of a: " << a << endl;
cout << "The value of b: " << b;
return 0;
}
आउटपुट
The value of a: 53548 The value of b: 53547
राउंडिंग मोड्स (fesetround के लिए)
| मैक्रो | व्यवहार |
|---|---|
FE_TONEAREST | निकटतम पूर्णांक (डिफ़ॉल्ट) |
FE_UPWARD | प्लस इन्फिनिटी की ओर (सीलिंग) |
FE_DOWNWARD | माइनस इन्फिनिटी की ओर (फ्लोर) |
FE_TOWARDZERO | शून्य की ओर (ट्रंकेशन) |
नोट
rint फ़ंक्शन्स वर्तमान राउंडिंग मोड के अनुसार राउंड करते हैं, जबकि round फ़ंक्शन्स हमेशा निकटतम पूर्णांक से दूर राउंड करते हैं (हाफवे केसेस में)।