c++ - 类型 'double' 和 'int' 到二进制 'operator%' 的无效操作数

标签 c++ compiler-errors binary-operators

我正在为我的控制结构类编写一个程序,并且正在尝试编译它。唯一的错误,至少编译器发现的唯一错误是将类型为“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/

相关文章:

C++ - Xcode 程序

c# - C#Winform编译错误

operator-overloading - 如何在 Julia 中重载/重新定义二元运算符?

C++ - 如何使用 reference_wrapper vector

haskell - 我对幺半群的理解有效吗?

c++ - 生成的 protobuf 消息的描述符的生命周期是多少?

c++ - 打印链表的问题

c++ - std::nth_element(a.begin(), a.end(), a.end()) 有什么作用?

c - Linux内核模块: Is it possible to use an open function inside another open function for my module?

compiler-errors - (...)*构造中的JAVACC ERROR选择冲突