web-dev-qa-db-fra.com

Comment faire une opération modulo en objective-c / cacao touch?

J'ai deux valeurs CGFloat et je veux calculer le résultat modulo. Ou en d'autres termes: je veux savoir ce qui reste si valeurA est placée autant que possible dans valeurB.

Alors j'ai juste essayé:

CGFloat moduloResult = valueB % valueA;

le compilateur se plaint du% et me dit: "opérandes non valides en% binaire". Une idée?

81
HelloMoon

% est pour int ou long, pas float ou double.

Vous pouvez utiliser fmod() ou fmodf() de <math.h> au lieu.

Mieux vaut <tgmath.h> as suggéré par l'inventeur de CGFloat .

201
mouviciel

Si je me souviens bien, modulo nécessite 2 ints en entrée, vous aurez donc besoin de quelque chose comme:

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

En supposant que valeurB et valeurA sont toutes deux des flottants

10
James Raybould