62 votes

Autour d'un flotteur jusqu'à la prochaine entier en objective-C?

Comment puis-je autour d'un flotteur jusqu'à la prochaine valeur entière en objective-C?

1.1 -> 2
2.3 -> 3
3.4 -> 4
3.5 -> 4
3.6 -> 4
1.0000000001 -> 2

134voto

Anthony Blake Points 3424

Vous voulez que le plafond de la fonction. Utilisé comme suit:

float roundedup = ceil(otherfloat);

2voto

Ray Toal Points 35382

Utiliser l' ceil() fonction.

Quelqu'un a fait un peu de mathématiques en C Objectif writeup ici: http://webbuilders.wordpress.com/2009/04/01/objective-c-math/

2voto

lindinax Points 134

Seulement ne pouvait pas commenter Davids réponse. Son deuxième réponse ne fonctionne pas comme modulo ne fonctionne pas sur les valeurs à virgule flottante. Ne devrait-elle pas ressembler à

if (originalFloat - (int)originalFloat > 0) {
    originalFloat += 1;
    round = (int)originalFloat;
}

1voto

David Points 6605

Vous pouvez soit utiliser la fonction ceil() comme Anthony a souligné:

float roundedup = ceil(otherfloat);

ou vous pouvez simplement ajouter un et de le convertir en un nombre entier.

if(originalFloat % 1 > 0)
{
     originalFloat += 1;
     int rounded = originalFloat;
}

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