2013-08-04 8 views
5

के लिए 'डबल' और 'int' प्रकार के अमान्य ऑपरेशंस मैं अपने नियंत्रण संरचना वर्ग के लिए एक प्रोग्राम लिख रहा हूं और मैं इसे संकलित करने की कोशिश कर रहा हूं। एकमात्र त्रुटि, कम से कम एकमात्र त्रुटि जिसे संकलक उठा रहा है, बाइनरी 'ऑपरेटर%' के प्रकारों के 'डबल' और 'int' के अमान्य संचालन कह रहा है। अधिकांश कार्यक्रम शामिल नहीं हैं क्योंकि यह बहुत लंबा है और वास्तव में इस समस्या से संबंधित नहीं है, कम से कम मुझे विश्वास नहीं है।बाइनरी 'ऑपरेटर%'

double maxTotal, minTotal; 

cin >> maxTotal >> minTotal; 

int addCalc; 

static_cast<int>(maxTotal); 

if(maxTotal % 2 == 1) 
    addCalc = minTotal; 
else 
    addCalc = 0; 

उत्तर

5

आपका static_cast कुछ भी नहीं कर रहा है। आपको क्या करना चाहिए:

if(static_cast<int>(maxTotal) % 2 == 1) 

सी ++ में चर प्रकार बदल नहीं सकते हैं। स्टेटिक कास्ट कास्टेड वैल्यू देता है जो इनपुट इनपुट के प्रकार को नहीं बदलता है, इसलिए आपको इसे सीधे इस्तेमाल करना होगा या इसे असाइन करना होगा।

int iMaxTotal = static_cast<int>(maxTotal); 

if(iMaxTotal % 2 == 1) 
    addCalc = minTotal; 
else 
    addCalc = 0; 

यह भी काम करेगा।

+0

Ahhhh का मान प्रदान करेंगे, तो आप बहुत बहुत धन्यवाद। – user2649644

0

आपको अपनी कास्ट को एक चर में असाइन करना चाहिए अन्यथा यह कुछ भी नहीं कर रहा है। static_cast<int>(maxTotal) प्रकार int

double maxTotal, minTotal; 

cin >> maxTotal >> minTotal; 

int addCalc; 

int i_maxTotal = static_cast<int>(maxTotal); 

if(i_maxTotal % 2 == 1) 
     addCalc = minTotal; 
else 
     addCalc = 0; 
संबंधित मुद्दे