Как проверить целое ли число в C++?

Пользователь

от montana_hand , в категории: C/C++ , 3 года назад

Как проверить целое ли число в C++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 3 года назад

Чтобы проверить, является ли число целым, нам достаточно перевести его в тип int(округлить до целой части) и вычесть само число. Если результат будет равен нулю - число целое.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>

using namespace std;

int main()
{
    int counter_int = 15;
    double counter_double = 15.121;
    
    if (int(counter_int) - counter_int == 0) cout << "Число целое" << endl; // Вывод : Число целое
    if (int(counter_double) - counter_double != 0) cout << "Число нецелое" << endl; // Вывод : Число нецелое

    return 0;
 }
  
  


Пользователь

от richard , 2 года назад

@montana_hand 

В C++ есть несколько способов проверить, является ли число целым:

  1. Использовать оператор остатка (%) для проверки остатка от деления на 2. Если остаток равен нулю, то число целое.
1
2
3
4
5
if (num % 2 == 0) {
    // num is even
} else {
    // num is odd
}


  1. Использовать функцию std::fmod() из библиотеки cmath. Если результат равен 0, то число целое.
1
2
3
4
5
if (std::fmod(num, 1) == 0) {
    // num is an integer
} else {
    // num is not an integer
}


  1. Использовать функцию std::floor() из библиотеки cmath. Если результат равен исходному числу, то число целое.
1
2
3
4
5
if (std::floor(num) == num) {
    // num is an integer
} else {
    // num is not an integer
}


  1. Использовать функцию std::trunc() из библиотеки cmath. Если результат равен исходному числу, то число целое.
1
2
3
4
5
if (std::trunc(num) == num) {
    // num is an integer
} else {
    // num is not an integer
}


  1. Использовать функцию std::isnan() из библиотеки cmath. Если функция возвращает false, то чи