12
votes

Comment arrondir une valeur de flotteur et la convertir en valeur Nsinteger dans l'iPhone SDK?

J'ai besoin d'arrondir une valeur de flotteur et de le convertir en une valeur Nsinteger code>.

Par exemple: P>

float f = 90.909088;


0 commentaires

4 Réponses :


4
votes

faire xxx

avant la conversion entier.


1 commentaires

Lorsque j'ai fait avec ceci si je passe la valeur comme 315, il a été converti comme 32.Je besoin de rester comme 315 s'il n'a pas de point décimal.



1
votes

Essayez:

float f = 90.909088;
NSNumber *myNumber = [NSNumber numberWithDouble:(f+0.5)];
NSInteger myInt = [myNumber intValue];


1 commentaires

Lorsque j'ai fini avec cela si je passe la valeur comme 315, il a été converti comme 32.Je besoin de rester comme 315 s'il n'a pas de point décimal



19
votes

L'une des fonctions de mathématiques suivantes peut fonctionner pour vous:

  • double plafond (double) li>
  • étage double (double) li>
  • Double AlleringInter (Double) Li>
  • double rint (double) li>
  • double rond (double) li>
  • Long int Lrint (double) li>
  • long int froid (double) li>
  • Long Long Int Llrint (Double) Li>
  • Long Long Int Llround (Double) Li>
  • Double Trunc (Double) Li> ul>

    Pour obtenir plus de documentation, ouvrez une session de terminal et tapez (par exemple) P>

    man lround
    


1 commentaires

De nombreuses fonctions mathématiques ont également des versions flottantes. Il suffit d'ajouter un f. Par exemple: plancher ().



21
votes

Un tour rapide et la distribution fonctionnera pour des valeurs négatives ainsi que des positifs: xxx


1 commentaires

Cette réponse devrait être la meilleure notée