2011-04-08 5 views

Répondre

139

Outre les autres réponses:

float theFloat = 1.23456; 
int rounded = roundf(theFloat); NSLog(@"%d",rounded); 
int roundedUp = ceil(theFloat); NSLog(@"%d",roundedUp); 
int roundedDown = floor(theFloat); NSLog(@"%d",roundedDown); 
// Note: int can be replaced by float 

Pour arrondir à des décimales spécifiques, voir la question mentionnée par Alex Kazaev.

+1

Vous devriez utiliser 'roundf' au lieu de' lroundf' pour lancer 'int' sans avertissement. Je n'ai pas pu modifier votre message en raison de la limite de modification de caractères minimale pour l'édition. – ersentekin

18

La fonction lroundf() va le faire:

float a=20.49; 
int myInt = lroundf(a); 
+1

que se passe-t-il si la valeur de a est supérieure à 20,5? – ios

+3

no. lroundf (a) donne u si la valeur est 20.75 alors elle devient 21 et si la valeur est 20.45 alors elle devient 20 ... signifie plus de 20.5 alors elle deviendra 21 sinon 20. :) –

1

Convertir en int, puis reconvertir à flotter.

CGFloat *myFloat = 100.765; 
NSInteger *myInteger = myFloat; 
CGFloat *newFloat = myInteger; 

Cela fonctionne

+0

C'est la troncature (sol/plafond) arrondi. – xaphod

Questions connexes