В C++ можно проверить, является ли число с плавающей точкой double целым с помощью двух подходов.
Первый подход заключается в использовании остатка от деления числа на 1. Если остаток равен нулю, то число является целым. В обратном случае, если остаток не равен нулю, то число имеет дробную часть и, следовательно, не является целым. Например:
double number = 5.0; if (number - trunc(number) == 0) { std::cout << "Число " << number << " является целым." << std::endl; } else { std::cout << "Число " << number << " имеет дробную часть." << std::endl; }
В этом примере мы сравниваем разницу между числом и его целочисленной частью (вычисленной с использованием функции trunc()
) с нулем.
Второй подход состоит в использовании функций fmod()
или remainder()
, которые возвращают остаток от деления двух чисел. Если остаток равен нулю, то число является целым. В противном случае, если остаток не равен нулю, то число имеет дробную часть. Например:
#include <cmath> double number = 5.0; if (std::fmod(number, 1.0) == 0) { std::cout << "Число " << number << " является целым." << std::endl; } else { std::cout << "Число " << number << " имеет дробную часть." << std::endl; }
В этом примере мы используем функцию fmod()
с аргументами number
и 1.0
, чтобы получить остаток от деления числа на 1.0.
Оба подхода дают одинаковый результат для чисел, являющихся целыми, и разный результат для чисел с дробной частью. Выбор подхода зависит от вашего предпочтения и особенностей задачи.