में नाव मूल्यों के लिए% ऑपरेटर का उपयोग कैसे करें। मैं पूर्णांकों दर्ज करना चाहते हैं केवल मूल्य ही है लेकिन संख्याएं बहुत बड़ी हैं (इंट प्रकार की सीमा में नहीं) ताकि असुविधा से बचने के लिए मैं फ्लोट का उपयोग कर सकूं। क्या ऐसे बड़े पूर्णांक मानों पर% ऑपरेटर का उपयोग करने का कोई तरीका है ????जब मैं नाव मूल्यों पर% ऑपरेटर का उपयोग करते हुए कहा कि मैं "बाइनरी% करने के लिए अमान्य operands ('नाव' और 'डबल' है)" त्रुटि मिलती है ग
उत्तर
आप मानक गणित पुस्तकालय से fmod
फ़ंक्शन का उपयोग कर सकते हैं। इसका प्रोटोटाइप मानक शीर्षलेख <math.h>
में है।
आप शायद long long
का उपयोग कर बेहतर हैं, जो अधिकांश सिस्टम में double
से अधिक सटीकता है।
नोट: यदि आपकी संख्या long long
से अधिक बड़ी हो सकती है, तो fmod
संभवतः उस तरीके से व्यवहार नहीं करेगा जैसा आप चाहते हैं। उस स्थिति में, आपकी सर्वश्रेष्ठ शर्त एक बड़ी लाइब्रेरी है, जैसे this one।
BigIntegerLibrary सी में स्वीकार नहीं किया जा रहा है ??? इसके अलावा बिग पूर्णांक के लिए% निर्दिष्टकर्ता क्या है ??? –
क्षमा करें, मैंने जो लाइब्रेरी सुझाई है वह सी ++ है। –
पर विचार: 32 बिट और 64 बिट
के लंबे पूर्णांक intहाँ,% (सापेक्ष) ऑपरेटर तैरता और डबल के साथ काम नहीं है .. यदि आप बड़ी संख्या में आप कर सकते हैं पर सापेक्ष आपरेशन करना चाहते हैं long long int(64bits)
जांचें यह आपकी मदद कर सकता है।
अभी भी उस मामले में 64 बिट्स तो तुलना रेंज पिसाई यंत्र आप में .. स्ट्रिंग डाटा स्टोर और एल्गोरिदम रूप सापेक्ष आपरेशन करने की जरूरत है।
या या तो आप अजगर की तरह किसी भी पटकथा भाषा पर जा सकते हैं
%
ऑपरेटर केवल पूर्णांक प्रकार ऑपरेंड के लिए परिभाषित किया गया है; आप फ्लोटिंग प्वाइंट प्रकार के लिए fmod*
पुस्तकालय कार्यों का उपयोग करना होगा:
#include <math.h>
double fmod(double x, double y);
float fmodf(float x, float y);
long double fmodl(long double x, long double y);
आप लंबे किसी पूर्णांक उपयोग का उपयोग करने के लिए एक प्रारूप है कि आपकी समस्या के लिए गैर आदर्श है का उपयोग नहीं करना चाहते हैं, तो एक बेहतर प्रारूप मौजूद है।
जब मैं fmod
या अन्य पुस्तकालयों के लिए आसान पहुँच नहीं किया है (उदाहरण के लिए, एक त्वरित Arduino स्केच कर रही है), मुझे लगता है कि निम्नलिखित काम करता है अच्छी तरह से:
float someValue = 0.0;
// later...
// Since someValue = (someValue + 1) % 256 won't work for floats...
someValue += 1.0; // (or whatever increment you want to use)
while (someValue >= 256.0){
someValue -= 256.0;
}
- 1. प्रकार के अमान्य operands int और बाइनरी 'ऑपरेटर%'
- 2. जहां [int, नाव, डबल]
- 3. जी ++ चेतावनी दी है जब डबल/नाव -Wconversion
- 4. नाव
- 5. सरल C++: कैसे गुणा ऑपरेटर ओवरलोड ताकि नाव * myClass और myClass * नाव काम करता है
- 6. एक्सकोड त्रुटि "बाइनरी अभिव्यक्ति के लिए अमान्य ऑपरेशंस"
- 7. मुझे त्रुटि मिलती है जब मैं emacs
- 8. अपने कस्टम नाव संपत्ति
- 9. प्रकार 'नाव'
- 10. एक नाव
- 11. नाव में मोड़ने के भौतिकी
- 12. printf नाव
- 13. अवहेलना + नाव के लिए अजगर में ऑपरेटर + obj
- 14. Cython नाव विभाजन PyExc_ZeroDivisionError
- 15. ईएसएस-rdired: मैं इस त्रुटि मिलती है
- 16. ### करने के लिए एक नाव का प्रारूपण ## (दो दशमलव)
- 17. सीएसएस रिश्तेदार + नाव
- 18. सी #: एक नाव
- 19. सी में एक नाव प्रिंट करते समय दोगुना करने के लिए
- 20. रोकें नाव एक नई लाइन
- 21. RegEx का उपयोग करते हुए अमान्य वर्ण
- 22. रैंडम नाव संख्या
- 23. Anorm पार्स नाव को महत्व देता
- 24. ली नाव प्रदर्शन बनाम: इनलाइन
- 25. मैं का उपयोग कर ग #
- 26. नाव अगले भाई पिछले भाई
- 27. सीएसएस पृष्ठभूमि गायब हो जाता है जब नाव का उपयोग कर: छोड़ दिया
- 28. वहाँ ग में एक ऑपरेटर नकारात्मक सकारात्मक या ठीक इसके विपरीत करने के लिए एक पूर्णांक नाव आदि के हस्ताक्षर को बदलने के लिए नहीं है?
- 29. अजगर: खोल आईबीएम 32-बिट नाव बिंदु
- 30. sizeof नाव (3.0) बनाम (3.0f)
तो 1.5% 1.1 = 0.4? – StuartLC
हाँ मॉड्यूलो डिवीजन ए = बी% सी; काम नहीं करेगा, क्योंकि आप दशमलव द्वारा दशमलव को विभाजित करके शेष नहीं प्राप्त कर सकते हैं। –