192 votes

Convertir de valeur absolue en Objective-C

Comment faire pour convertir un nombre négatif pour une valeur absolue en Objective-C?

c'est à dire

-10

devient

10?

462voto

Jonathan Grynspan Points 32291

Selon le type de la variable, l'un d' abs(int), labs(long), llabs(long long), imaxabs(intmax_t), fabsf(float), fabs(double)ou fabsl(long double).

Ces fonctions sont toutes partie de la bibliothèque standard C, et donc, sont présents à la fois en Objective-C et du C (et ils sont généralement disponibles dans les programmes C++).

(Hélas, il n'y a pas d' habs(short) fonction. Ou scabs(signed char) d'ailleurs...)


Apple et GNU Objective-C en-têtes comprennent également un ABS() macro qui est de type agnostique. Je ne recommandons pas d'utiliser des ABS() cependant, comme il n'est pas garanti d'être des effets secondaires fort. Par exemple, ABS(a++) aura un résultat indéfini.


Si vous êtes à l'aide de C++ ou Objective-C++, vous pouvez apporter dans l' <cmath> tête std::abs(), qui est basé sur un modèle pour tous les entiers, et les types à virgule flottante.

3voto

da Rocha Pires Points 121

Vous pouvez utiliser cette fonction pour obtenir la valeur absolue:

+(NSNumber *)absoluteValue:(NSNumber *)input {
  return [NSNumber numberWithDouble:fabs([input doubleValue])];
}

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