10
votes

IOS Objective-C: Utiliser Modulo sur un flotteur pour obtenir des "pouces" des pieds

J'essaie de faire un convertisseur de hauteur de l'objectif-c simple. L'entrée est une variable (flottante) de pieds, et je souhaite convertir en pieds (int) pieds et (flottants) pouces: xxx

Cependant, je continue à obtenir une erreur de Xcode, et je réalisé que l'opérateur modulo ne fonctionne que avec (int) et (long). Quelqu'un peut-il recommander une méthode alternative? Merci!


1 commentaires

Oui, Modulo fonctionne uniquement pour les entiers (non décimales) uniquement. Tout comme ce que vous avez fait, jeté en Integer, puis modulo.


3 Réponses :


1
votes

Pourquoi n'utilisez-vous pas

CGFloat myInches = totalHeight - myFeet;


5 commentaires

Oui, c'est tellement évident! Je devrais utiliser la pile débordement passé à 3 heures du matin. Merci beaucoup.


Vous ne devriez pas demander d'accepter la réponse ... Si OP aime les autres comme si vous obtiendrez + votes .. :)


@Anoopvaidya Yep, je sais ce que vous parlez, mais vous savez que certains nouveaux arrivants oublient toujours d'accepter la réponse. Je ne suis pas sûr de cela et j'ai vu le commentaire de OP qu'il semble que ma réponse a répondu aux questions de OP. Je viens donc d'ajouter un rappel. Est-ce clair?


Sunkehappy ... votre réponse a certainement aidé dans mon cas, mais je pense que l'opération d'Anoop arrive vraiment au cœur de la question


@ Jake9115 J'ai également appris de la réponse d'Anoop. Je n'ai pas entendu parler de cela auparavant.



26
votes

Même Modulo fonctionne pour flotteur, utilisez:

fmod () code> p>

Vous pouvez utiliser de cette manière aussi ... P>

float totalHeight = 5.122222;
float myFeet = (int) totalHeight; //returns 5 feet
float myInches = fmodf(totalHeight, myFeet);
NSLog(@"%f",myInches);


2 commentaires

Float MyInches = FModf (totalheight, myfeet); vous devez le multiplier par 12.


@shim: L'op ne veut pas que tous les pieds soient convertis en pouces ... Il ne voulait que la fraction de pieds en pouces et les pieds en totalité.



0
votes

Comme répondu plus tôt, la soustraction est la voie à suivre. N'oubliez pas de convertir les dixièmes de pieds en pouces en multipliant avec 12: xxx


0 commentaires