Convierta a valor absoluto en Objective-C

¿Cómo convierto un número negativo a un valor absoluto en Objective-C?

es decir

-10

se convierte

10?

Dependiendo del tipo de su variable, uno de abs(int) , labs(long) , llabs(long long) , imaxabs(intmax_t) , fabsf(float) , fabs(double) o fabsl(long double) .

Esas funciones son todas parte de la biblioteca estándar C, por lo que están presentes tanto en Objective-C como en C simple (y generalmente también están disponibles en los progtwigs C ++).

(Por desgracia, no hay función de habs(short) . O scabs(signed char) para el caso …)


Los encabezados Objective-C de Apple y GNU también incluyen una macro ABS() que es independiente del tipo de letra. No recomiendo usar ABS() sin embargo, ya que no se garantiza que sea seguro para los efectos secundarios. Por ejemplo, ABS(a++) tendrá un resultado indefinido.


Si está utilizando C ++ u Objective-C ++, puede traer el y usar std::abs() , que está templado para todos los tipos enteros estándar y de coma flotante.

Puede usar esta función para obtener el valor absoluto:

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