error: operandos no válidos a% binario cuando se toma el módulo de float

Ha sido una semana bastante larga, así que perdóname si estoy siendo espeso.

Tengo un código como:

float someFloat = 0; //....do some stuff to someFloat //.... if( someFloat % 1) { //take some action } 

Recibo un error del comstackdor: error: invalid operands to binary %

Suponiendo que el comstackdor no esté en las drogas, ¿qué hay de malo en esto?

EDITAR: Aparte de eso, lo que realmente quería hacer era detectar un valor no entero y redondear. Lo que debería haber estado haciendo fue llamar a roundf (y creo que comprobar si la devolución es menor que el operando y luego boost si es así, para tener cuidado de que hayamos redondeado)

% es un operador entero: use fmod o fmodf para dobles o flotantes.

Alternativamente, si espera que su flotador represente valores enteros, entonces conviértalo a un int primero, por ejemplo:

 if ((int)someFloat % 2 == 1) // if f is an odd integer value { ... } 

El operador de módulo solo funciona en enteros. Para valores de punto flotante utilice fmod o fmodf .

% esto solo funciona con enteros, use fmod para punto flotante o valores dobles **

 double fmod(double x, double y) x -- This is the floating point value with the division numerator iex y -- This is the floating point value with the division denominator iey