c++ - residuo - que es un modulo en java
No se puede usar el módulo en dobles? (3)
Tengo un programa en C ++ (compilado usando g ++). Estoy tratando de aplicar dos dobles como operandos a la función de módulo, pero me sale el siguiente error:
error: operandos inválidos de los tipos ''double'' y ''double'' a binary ''operator%''
Aquí está el código:
int main() {
double x = 6.3;
double y = 2;
double z = x % y;
}
El operador %
es para enteros. Está buscando la función fmod()
.
#include <cmath>
int main()
{
double x = 6.3;
double y = 2.0;
double z = std::fmod(x,y);
}
Use fmod()
desde <cmath>
. Si no desea incluir el archivo de encabezado C (nota: U
no puede ser float
o double
):
template<typename T, typename U>
constexpr T dmod (T x, U mod)
{
return !mod ? x : static_cast<long long>(x) % mod + x - static_cast<long long>(x);
}
//Usage:
double z = dmod<double, unsigned int>(14.3, 4);
double z = dmod<long, short>(14, 4);
//This also works:
double z = dmod(14, 4);
double z = dmod(14, 0);
double z = dmod(myFirstVariable, someOtherVariable);
fmod(x, y)
es la función que usa.