मेरे पास सी ++ में एक प्रोग्राम है (जी ++ का उपयोग करके संकलित)। मैं मापांक कार्य करने के लिए ऑपरेंड के रूप में दो युगल लागू करने के लिए कोशिश कर रहा हूँ, लेकिन मैं निम्नलिखित त्रुटि मिलती है:युगल पर मॉड्यूलस का उपयोग नहीं कर सकता?
error: invalid operands of types 'double' and 'double' to binary 'operator%'
कोड यह रहा:
int main() {
double x = 6.3;
double y = 2;
double z = x % y;
}
के रूप में उल्लेख किया गया है, fmod() आवश्यक समारोह प्रदान करता है। जैसा कि अभी तक उल्लेख नहीं किया गया है, यह जानना महत्वपूर्ण है कि 'fmod' के दूसरे ऑपरेंड में गोल करने वाली त्रुटियां अप्रत्याशित व्यवहार कर सकती हैं। उदाहरण के लिए, 'fmod (1, 0.1);' गणितीय रूप से शून्य होना चाहिए, लेकिन वास्तव में लगभग 0.1 हो जाएगा। त्रुटि की सीमा मात्रा के आयाम के साथ बढ़ जाती है। उदाहरण के लिए, 'fmod (9E14, 0.1); '0.05 का मूल्यांकन करता है, जो गणितीय दृष्टिकोण से सिर्फ सादा गलत है। – supercat
@supercat अधिक जानकारी अद्भुत होगा। मुझे लगता है कि दृश्यों के पीछे क्या है, इसके बारे में एक विचार है जो आप सच कहने के लिए करते हैं, लेकिन यह देखने के लिए अच्छा होगा कि आप जो कहते हैं वह सच है; देखना दिलचस्प होगा कि यह दृश्यों के पीछे कैसे काम करता है (मुझे लगता है कि मैं समझता हूं लेकिन बहुत आसानी से गलत हो सकता है)। – RastaJedi
फ़्लोटिंग-पॉइंट मान सटीक पूर्णांक गुणांक या दो की शक्तियों के अंशों का प्रतिनिधित्व करते हैं। उदाहरण के लिए, पूर्णांक अक्षर 0.1 वास्तव में 3602879701896397/36028797018963968 है (बाद वाला मान दो की शक्ति है)। 'fmod (x, 0.1) 'उस सटीक अंश से एक्स को विभाजित करेगा और संख्यात्मक मूल्य" दसवां "द्वारा विभाजित करने के बजाय शेष को ले जाएगा। – supercat