83

I have two CGFloat values, and want to calculate the modulo result. Or in other words: I want to know what's left if valueA is placed as much as possible into valueB.

So I just tried:

CGFloat moduloResult = valueB % valueA;

the compiler complains about the % and tells me: "invalid operands to binary %". Any idea?

4

2 に答える 2

205

% is for int or long, not float or double.

You can use fmod() or fmodf() from <math.h> instead.

Better is <tgmath.h> as suggested by the inventor of CGFloat.

于 2009-08-13T10:13:56.320 に答える
11

If I remember correctly modulo requires 2 ints as its input so you'd need something like:

CGFloat moduloResult = (float)((int)valueB % (int)valueA);

Assuming that valueB and valueA are both floats

于 2009-08-13T10:14:11.203 に答える