2012-03-08 111 views
6

我需要檢查,如果一個變量是一個整數,說我有代碼:有沒有辦法檢查一個變量是否是整數? C++

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

我會怎麼做呢?

+0

哎呀對不起,這意味着雙,剛編輯 – Billjk 2012-03-08 04:24:38

+2

我認爲你有XY的問題:你有問題,X和潛在的解決方案Y,所以你問的是後者,雖然你應該詢問前者。 – 2012-03-08 04:35:53

回答

13

假設foobar實際上是一個浮點值,你可以詳談和比較,爲數字本身:您正在使用INT

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

沒有什麼可以在一個整數中舍入。 – 2012-03-08 04:23:55

+0

哎呀抱歉,意思是雙倍,剛編輯 – Billjk 2012-03-08 04:24:24

2

所以它永遠是一個「整體」號。但是,如果你使用雙倍,那麼你可以做這樣的事情

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

取決於你的整數的定義。如果您只考慮0和以上作爲整數,那麼它就像:bool whole = foobar >= 0;一樣簡單。

+0

@downvoter:整數的定義不準確。參見wikipedia:http://en.wikipedia.org/wiki/Whole_number。 – Asha 2012-03-08 04:27:28

+0

呵呵,從來沒有聽說過。每當它出現時,我所說的每個人都同意這個定義。 – 2012-03-08 15:25:55

0

只需寫一個functionexpression來檢查whole number,返回bool

在通常的定義中,我認爲整數大於0,沒有小數部分。

然後,

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

注意:有一個被拒絕的「過於激進」的建議編輯:http://stackoverflow.com/review/suggested-edits/5928097 – 2014-10-05 23:34:17

相關問題