error with fmod() function

This is the function I am using to decrypt a value using the RSA method. I seem to be having a problem with the fmod() function.

I have followed the function through with a debugger and get the following results:

The values of the variables are:

C = 33

PrivKey = 29

ModKey = 91

Power = pow (C, PrivKey) = 1.088690056823e+044

M = fmod (Power, ModKey) = 87

I have performed the calculations on Windows’ calculator and get the same result for the power operation but get a value of 24 after the Mod operation. This is the correct value (the initial value before encryption). There is obviously an error occurring with the fmod() function but I don’t see what it is. M, Power and ModKey are all doubles so there shouldn’t be a problem there. Anyone know why I am getting this error? Thanks.

My function:

Code:

`void CipherDecrypt::DecryptData (double input)`

{

C = input;

cout << "Decrypt" << endl << "C: " << C << endl;

Power = pow (C, PrivKey);

cout << "Power: " << Power << endl;

M = fmod (Power, ModKey);

cout << "M: " << M << endl;

}