¿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])];
}