web-dev-qa-db-fra.com

iOS autour d'un flotteur

J'ai un nombre à virgule flottante qui a plus de chiffres décimaux, par exemple:

float fRes = 10.0 / 3.0;

en fait, la valeur fRes est 3.3333333333333, il est possible de définir par exemple 2 chiffres décimaux:

float fRes = 10.0 / 3.0;
// fRes is 3.333333333333333333333333
float fResOk = FuncRound( fRes, 2 );
// fResOk is 3.33

merci d'avance

21
ghiboz

En supposant que vous recherchez la fonction correcte à arrondir à un certain nombre de chiffres, vous trouverez probablement la méthode la plus simple pour effectuer les opérations suivantes:

fResOk = roundf( fRes*100.0)/100.0;

Cela multipliera la valeur par 100 (en vous donnant vos 2 chiffres de signification), arrondissez la valeur, puis réduisez-la à la grandeur avec laquelle vous avez commencé à l'origine.

30
gaige

Je ne sais pas où vous utilisez ce nombre arrondi, mais vous ne devez arrondir votre valeur que lorsque vous l'affichez à l'utilisateur, il existe des méthodes de chaîne de format C pour arrondir les nombres à virgule flottante par exemple

[NSString stringWithFormat:@"%.2f", value];

comme vous l'avez peut-être déjà lu, les nombres à virgule flottante sont des approximations de nombres réels, donc fResOk = roundf( fRes*100.0)/100.0; peut ne pas vous donner 3,33 mais un nombre qui est aussi proche que vous pouvez obtenir avec un nombre à virgule flottante à 3,33.

59
Nathan Day