43 votes

Arrondi du flotteur Objective-C

Comment pourrais-je arrondir un flottant au nombre entier le plus proche dans Objective-C:

Exemple:

 float f = 45.698f;
int rounded = _______;
NSLog(@"the rounded float is %i",rounded);
 

devrait imprimer "le flotteur arrondi est de 46"

152voto

Jonathan Grynspan Points 32291

Utilisez la famille de fonctions standard C round() . roundf() pour float , round() pour double , et roundl() pour long double . Vous pouvez ensuite convertir le résultat en type entier de votre choix.

27voto

Dave Points 2705

jette-le sur un int après avoir ajouté 0,5.

Alors

 NSLog (@"the rounded float is %i", (int) (f + 0.5));
 

Edit: la façon dont vous avez demandé:

 int rounded = (f + 0.5);


NSLog (@"the rounded float is %i", rounded);
 

6voto

capikaw Points 1167

Le moyen le plus simple d’arrondir un flottant dans l’objectif-c est lroundf :

 float yourFloat = 3.14;
int roundedFloat = lroundf(yourFloat); 
NSLog(@"%d",roundedFloat);
 

4voto

NSResponder Points 14459

Consultez la page de manuel pour rint()

0voto

    //Your Number to Round (can be predefined or whatever you need it to be)
    float numberToRound = 1.12345;

    float min = ([ [[NSString alloc]initWithFormat:@"%.0f",numberToRound] floatValue]);
    float max = min + 1;
    float maxdif = max - numberToRound;
    if (maxdif > .5) {
        numberToRound = min;
    }else{
        numberToRound = max;
    }

    //numberToRound will now equal it's closest whole number (in this case, it's 1)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X