Есть ли способ проверить, является ли переменная целым числом?C ++ - PullRequest
7 голосов
/ 08 марта 2012

Мне нужно проверить, является ли переменная целым числом, скажем, у меня есть код:

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

Как бы я это сделал?

Ответы [ 4 ]

12 голосов
/ 08 марта 2012

Предполагая, что foobar на самом деле является значением с плавающей запятой, вы можете округлить его и сравнить с самим числом:

if (floor(foobar) == foobar)
    cout << "It's whole";
else
    cout << "Not whole";
3 голосов
/ 08 марта 2012

Вы используете int, поэтому оно всегда будет "целым" числом. Но если вы используете двойной, вы можете сделать что-то вроде этого

double foobar = something;
if(foobar == static_cast<int>(foobar))
   return true;
else
   return false;
1 голос
/ 08 марта 2012

Зависит от вашего определения целого числа.Если вы рассматриваете только 0 и выше как целое число, то это так просто:

0 голосов
/ 08 марта 2012

просто напишите function или expression для проверки на whole number, возвращая bool.

в обычном определении, я думаю, что целое число больше 0 без десятичной части.

затем

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