2010-11-02 7 views
5

J'ai besoin d'arrondir les valeurs flottantes avec une précision de deux décimales, pour un calcul ultérieur. Par exemple, si j'ai 0,1098 j'ai besoin de lui pour devenir 0,10 et si j'ai 0.1176 j'ai besoin de cela pour devenir 0.11.Comment arrondir un flotteur?

Quasiment je suppose que je dois tronquer mes flotteurs à 2 chiffres après la virgule

Répondre

14

habituellement vous n'arrondi lors de la conversion en une chaîne, car flotteurs binaires ne peuvent pas représenter toujours exactement 2 chiffres après la virgule. Pour obtenir un NSString avec 2 chiffres, utilisez

[NSString stringWithFormat:@"%.02f", num]; 

Si vous vraiment voulez tronquer à un flotteur pour le calcul plus loin, utiliser quelque chose comme

((int)(num * 100))/100.0 

et si vous voulez arrondir au lieu de tronquer

((int)(num * 100 + 0.5))/100.0 
+0

Merde, si vite sur la réponse! C'est par la bonne réponse. – Jim

+0

sauf qu'il veut arrondir à la baisse, alors n'ajoutez pas .5 –

+0

@jcomeau_ictx en effet, corrigé. – cobbal