2つのCGFloat値があり、モジュロ結果を計算したい。または、言い換えると、valueAがvalueBに可能な限り配置されている場合、何が残っているのかを知りたいのです。
だから私は試しました:
CGFloat moduloResult = valueB % valueA;
コンパイラは%について文句を言い、「バイナリ%に対する無効なオペランド」を教えてくれます。何か案が?
%はint
またはlong
ではなく、float
またはdouble
を表します。
代わりに_<math.h>
_からfmod()
またはfmodf()
を使用できます。
より良いのは _<tgmath.h>
_ as CGFloatの発明者によって提案された です。
モジュロの入力が2つのintを必要とすることを正しく覚えている場合、次のようなものが必要になります。
CGFloat moduloResult = (float)((int)valueB % (int)valueA);
ValueBとvalueAが両方ともfloatであると仮定します