在一次C++的练习中,我发现了这个问题,并在网上查找到了原因,特在此记录下来。
1️⃣ 基本
从字面意思来看就是说,类型int
和double
为二进制运算符%
的无效操作数。这是因为对于取模运算符 %
,你的操作数只能是整型的,也就相当于没有为double
类型定义%
运算符。所以当你的取模运算中包含非整型数据时,类似这样:
int a=2;
cout<<11.0 % a<<endl;
就会报错。但是当你的取模运算中一定要有double
类型数据时,可以考虑如下代码:
#include<math.h>
int a=2;
cout<<fmod(11.0 , a)<<endl;
2️⃣ 拓展
其实,不仅仅是取模运算未对double
类型定义,诸如&,^,|,~,<<,>>
之类的按位运算符也是这样。
3️⃣ 更多
在这里