我正在为我的控制结构类编写一个程序,并且正在尝试编译它。唯一的错误,至少编译器发现的唯一错误是将类型为“double”和“int”的无效操作数说成二进制“operator%”。大部分程序都没有包括在内,因为它太长而且与这个问题无关,至少我不相信。
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;
这也行。
关于c++ - 类型 'double' 和 'int' 到二进制 'operator%' 的无效操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18038902/