这就是我检查2 * M_PI的数字除数的方法。 “ w”是2/3的常数,t是随t + = dt变化的变量,其中dt为0.1。我正在尝试使用mod运算符%来查看是否可整除。但是它不起作用。

布尔可除
实数w = 2/3;
真正的

if((w*t) % 2*M_PI == 0)
    {
        divisible = true;
    }

else
    {
        divisible = false;
    }


这是我得到的错误,“类型为'real'和'int'的类型为二进制'operator%'的无效操作数”

这是什么意思?我该如何工作?那么我需要将w和t设为int吗?不可能是因为w是2/3,并且t从0递增0.1。有人可以帮帮我吗?

最佳答案

取而代之的是使用std::fmod,它以双精度而不是整数%运算符运算。

10-02 21:14