¿Cómo convierto un número negativo en un valor absoluto en Objective-C?
es decir
-10
se convierte
10?
¿Cómo convierto un número negativo en un valor absoluto en Objective-C?
es decir
-10
se convierte
10?
Respuestas:
Dependiendo del tipo de la variable, uno de abs(int), labs(long), llabs(long long), imaxabs(intmax_t), fabsf(float), fabs(double), o fabsl(long double).
Esas funciones forman parte de la biblioteca estándar de C, por lo que están presentes tanto en Objective-C como en C simple (y generalmente también están disponibles en los programas de C ++).
(Por desgracia, no hay habs(short)función. O scabs(signed char)para el caso ...)
Los encabezados Objective-C de Apple y GNU también incluyen una ABS()macro que es independiente del tipo. ABS()Sin embargo, no recomiendo usarlo 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 incorporar el <cmath>encabezado y el uso std::abs(), que está diseñado para todos los tipos enteros estándar y de punto flotante.
ABS()no es seguro para los efectos secundarios en todos los compiladores, por lo que no recomiendo usarlo.
extern float fabsf(float); extern double fabs(double);
Puede usar esta función para obtener el valor absoluto:
+(NSNumber *)absoluteValue:(NSNumber *)input {
return [NSNumber numberWithDouble:fabs([input doubleValue])];
}