2012-03-08 18 views
6

मैं अगर एक चर पूर्णांक संख्या होती है जांच करने की जरूरत है, मैं कोड है कहना:क्या यह जांचने का कोई तरीका है कि कोई चर एक पूर्ण संख्या है या नहीं? सी ++

double foobar = 3; 
//Pseudocode 
if (foobar == whole) 
    cout << "It's whole"; 
else 
    cout << "Not whole"; 

मैं यह कैसे करना होगा?

+0

ओह माफ करना, डबल, बस संपादित मतलब – Billjk

+2

मुझे लगता है कि आप एक XY समस्या है: यदि आप समस्या एक्स और संभावित समाधान Y है ताकि आप बाद के बारे में ही आप होना चाहिए पूछ रहे हैं पूर्व के बारे में पूछना। –

उत्तर

13

मान लिया जाये कि foobar वास्तव में एक चल बिन्दु मान है, तो आप इसे दौर और संख्या में ही करने के लिए कि तुलना कर सकते हैं:

if (floor(foobar) == foobar) 
    cout << "It's whole"; 
else 
    cout << "Not whole"; 
+0

एक पूर्णांक में गोल करने के लिए कुछ भी नहीं है। –

+0

जो लोग क्षमा चाहते हैं, उनका मतलब डबल था, बस – Billjk

2

आप पूर्णांक उपयोग कर रहे हैं तो यह हमेशा एक "पूरी" नंबर होगा। लेकिन मामले में आप एक डबल का उपयोग कर रहे है तो आप कुछ इस तरह

double foobar = something; 
if(foobar == static_cast<int>(foobar)) 
    return true; 
else 
    return false; 
1

पूर्ण संख्या की अपनी परिभाषा पर निर्भर करता है क्या कर सकते हैं। यदि आप पूरी संख्या के रूप में केवल 0 और ऊपर मानते हैं तो यह उतना आसान है जितना: bool whole = foobar >= 0;

+0

@downvoter संपादित किया गया: संपूर्ण संख्या की परिभाषा सटीक नहीं है। विकिपीडिया देखें: http://en.wikipedia.org/wiki/Whole_number। – Asha

+0

हुह, इसके बारे में कभी नहीं सुना। हर बार जब यह आता है, हर कोई मैंने परिभाषा पर सहमत होने के लिए बात की। –

0

सिर्फ एक function या expression लिखने whole number के लिए जाँच करें करने के लिए, bool लौटने।

सामान्य परिभाषा में मुझे लगता है कि पूरा संख्या 0 से अधिक दशमलव भाग के साथ 0 से अधिक है।

तो,

if (abs(floor(foobar))== foobar) 
    cout << "It's whole"; 
else 
    cout << "Not whole"; 
+1

नोट: एक अस्वीकार "बहुत कट्टरपंथी" सुझाया गया संपादन है: http://stackoverflow.com/review/suggested-edits/5928097 –

संबंधित मुद्दे

 संबंधित मुद्दे