¿Cómo convierto un número negativo en un valor absoluto en Objective-C?
es decir
-10
se convierte
10?
objective-c
conservador rojo
fuente
fuente
Respuestas:
Dependiendo del tipo de la variable, uno de
abs(int)
,labs(long)
,llabs(long long)
,imaxabs(intmax_t)
,fabsf(float)
,fabs(double)
, ofabsl(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. Oscabs(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 usostd::abs()
, que está diseñado para todos los tipos enteros estándar y de punto flotante.fuente
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:
fuente