双打不能使用模数?
我有一个C ++程序(使用g ++编译)。 我试图将两个双打作为操作数模数函数,但我得到以下错误:
错误:types'double'和'double'的操作数无效到二进制'operator%'
代码如下:
int main() { double x = 6.3; double y = 2; double z = x % y; }   %运算符是整数。 你正在寻找fmod()函数 。 
 #include <math.h> int main() { double x = 6.3; double y = 2.0; double z = fmod(x,y); return 0; } 
  fmod(x, y)是你使用的函数。 
 使用<cmatch> fmod() 。 如果你不想包含C头文件: 
 double dmod (double x, long long mod) { return static_cast<long long>(x) % mod + x - static_cast<long long>(x); } 
 或者更通用的方法( T不能是float或double float ): 
 template<typename T, typename U> constexpr T dmod (T x, U mod) { return static_cast<long long>(x) % mod + x - static_cast<long long>(x); }