Как найти остаток от деления переменной, если она типа double?
double amount;
cin >> amount;
if (amount % 1 == 0)
{...}
Вот такой код не работает, поскольку amount в программе имеет тип double, сама ошибка:
E2140 выражение должно относиться к целочисленному типу или типу перечисления без области видимости
По условия задачи, нужно выполнить проверку того, что пользователь ввел число без дробной части в данном конкретном случае и если это так, то уже выполнять код в скобках, а если число дробное, то выполнить уже другое действие.
Ответы (3 шт):
Опреатор остатка от деления не может быть использован на не целочисленных типах попробуй такой вариант:
if (amount == (int)amount )
Это преобразование типов и можно будет сравнить является ли amount своему же аналогу только целочисленному.
Проверить, что вещественное число целое, можно так:
fabs(x) >= 9007199254740992 || (long long)x == x