Não pode usar o módulo em duplas?

Eu tenho um programa em C ++ (compilado usando g + +). Eu estou tentando aplicar duas duplas como operandos para a function de módulo, mas recebo o seguinte erro:

erro: operandos inválidos dos tipos ‘double’ e ‘double’ para binário ‘operator%’

Aqui está o código:

int main() { double x = 6.3; double y = 2; double z = x % y; } 

   

O operador % é para inteiros. Você está procurando pela function fmod() .

 #include  int main() { double x = 6.3; double y = 2.0; double z = std::fmod(x,y); } 

fmod(x, y) é a function que você usa.

Use fmod() de . Se você não quiser include o arquivo de header C (nota: U não pode ser float ou double ):

 template constexpr T dmod (T x, U mod) { return !mod ? x : static_cast(x) % mod + x - static_cast(x); } //Usage: double z = dmod(14.3, 4); double z = dmod(14, 4); //This also works: double z = dmod(14, 4); double z = dmod(14, 0); double z = dmod(myFirstVariable, someOtherVariable);