Non puoi usare il modulo sui doppi?

Ho un programma in C ++ (compilato usando g ++). Sto cercando di applicare due doppi come operandi alla funzione modulo, ma ottengo il seguente errore:

errore: operandi non validi di tipi ‘double’ e ‘double’ per l’operatore ‘binario’% ‘

Ecco il codice:

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

L’operatore % è per numeri interi. Stai cercando la funzione fmod() .

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

fmod(x, y) è la funzione che usi.

Usa fmod() da . Se non si desidera includere il file di intestazione C (nota: U non può essere float o 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);