Я пишу программу для своего класса структур управления и пытаюсь ее скомпилировать. Единственная ошибка, по крайней мере единственная ошибка, которую обнаруживает компилятор, — это неверные операнды типов ‘double’ и ‘int’ для двоичного оператора ‘%’. Большая часть программы не включена, так как она слишком длинная и не имеет отношения к этой проблеме, по крайней мере, я не верю.
double maxTotal, minTotal;
cin >> maxTotal >> minTotal;
int addCalc;
static_cast<int>(maxTotal);
if(maxTotal % 2 == 1)
addCalc = minTotal;
else
addCalc = 0;
Ваш static_cast ничего не делает. Что вы должны делать, это:
if(static_cast<int>(maxTotal) % 2 == 1)
Переменные в C ++ не могут изменять типы. Статическое приведение возвращает приведенное значение, оно не меняет тип входной переменной, поэтому вы должны использовать его напрямую или назначить.
int iMaxTotal = static_cast<int>(maxTotal);
if(iMaxTotal % 2 == 1)
addCalc = minTotal;
else
addCalc = 0;
Это тоже сработало бы.
Вы должны назначить ваше приведение к переменной, иначе оно ничего не делает. static_cast<int>(maxTotal)
вернет значение типа int
double maxTotal, minTotal;
cin >> maxTotal >> minTotal;
int addCalc;
int i_maxTotal = static_cast<int>(maxTotal);
if(i_maxTotal % 2 == 1)
addCalc = minTotal;
else
addCalc = 0;