Hi I am programming in C,

and when I do a pow function such as num = pow(28,7);

If num is a float or a double, the correct answer is achieved, but if it is an int or a long, num is assigned an incorrect answer.

Which gives me a problem because I then what to do num%33.

Like I said if I do it, when num is an int, the answer is incorrect.
and if I keep num as a double or float, I get the error:
illegal use of floating point in function.....

Is there anyway to overcome this? It is driving me mad!!