2012-03-08 10 views
6

は、私は、コードを持っていると言う:変数が整数かどうかを確認する方法はありますか?私は変数が整数であるかどうかを確認する必要があるC++

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

私はこれをどのように行うのでしょうか? foobarを想定し

+0

おっとは、ちょうど私はあなたがXYに問題があると思う – Billjk

+2

を編集し、二重の意味しました前者について尋ねる。 –

答えて

13

は、あなたがそれを丸めると、番号自体にそれを比較することができ、実際には浮動小数点値である:

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

整数で切り捨てるものはありません。 –

+0

whoops申し訳ありませんが、ダブルを意味するだけです。 – Billjk

2

それは常に「全体」の数になりますので、あなたはint型を使用しています。しかし、ダブルを使用している場合は、このようなことをすることができます

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

+0

ハァッ、聞いたことがない。それが上がるたびに、私が話したすべての人が定義に同意した。 –

0

functionまたはexpressionと書いてwhole numberを確認して、boolを返してください。

通常の定義では、整数は小数部なしの0より大きいと思います。あなたは、問題のXおよび潜在的な解決策Yを持って、あなたがする必要がありますけれども、あなたは後者について尋ねているので:

そして、申し訳ありません

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

注:拒否された「あまりに過激な」提案された編集があります:http://stackoverflow.com/review/suggested-edits/5928097 –

関連する問題