我需要檢查,如果一個變量是一個整數,說我有代碼:有沒有辦法檢查一個變量是否是整數? C++
double foobar = 3;
//Pseudocode
if (foobar == whole)
cout << "It's whole";
else
cout << "Not whole";
我會怎麼做呢?
我需要檢查,如果一個變量是一個整數,說我有代碼:有沒有辦法檢查一個變量是否是整數? C++
double foobar = 3;
//Pseudocode
if (foobar == whole)
cout << "It's whole";
else
cout << "Not whole";
我會怎麼做呢?
假設foobar
實際上是一個浮點值,你可以詳談和比較,爲數字本身:您正在使用INT
if (floor(foobar) == foobar)
cout << "It's whole";
else
cout << "Not whole";
沒有什麼可以在一個整數中舍入。 – 2012-03-08 04:23:55
哎呀抱歉,意思是雙倍,剛編輯 – Billjk 2012-03-08 04:24:24
所以它永遠是一個「整體」號。但是,如果你使用雙倍,那麼你可以做這樣的事情
double foobar = something;
if(foobar == static_cast<int>(foobar))
return true;
else
return false;
取決於你的整數的定義。如果您只考慮0和以上作爲整數,那麼它就像:bool whole = foobar >= 0;
一樣簡單。
@downvoter:整數的定義不準確。參見wikipedia:http://en.wikipedia.org/wiki/Whole_number。 – Asha 2012-03-08 04:27:28
呵呵,從來沒有聽說過。每當它出現時,我所說的每個人都同意這個定義。 – 2012-03-08 15:25:55
只需寫一個function
或expression
來檢查whole number
,返回bool
。
在通常的定義中,我認爲整數大於0,沒有小數部分。
然後,
if (abs(floor(foobar))== foobar)
cout << "It's whole";
else
cout << "Not whole";
注意:有一個被拒絕的「過於激進」的建議編輯:http://stackoverflow.com/review/suggested-edits/5928097 – 2014-10-05 23:34:17
哎呀對不起,這意味着雙,剛編輯 – Billjk 2012-03-08 04:24:38
我認爲你有XY的問題:你有問題,X和潛在的解決方案Y,所以你問的是後者,雖然你應該詢問前者。 – 2012-03-08 04:35:53