Come faccio a convertire un numero negativo in un valore assoluto in Objective-C?
vale a dire
-10
diventa
10?
Come faccio a convertire un numero negativo in un valore assoluto in Objective-C?
vale a dire
-10
diventa
10?
Risposte:
A seconda del tipo della variabile, una delle abs(int), labs(long), llabs(long long), imaxabs(intmax_t), fabsf(float), fabs(double), o fabsl(long double).
Queste funzioni fanno tutte parte della libreria standard C e quindi sono presenti sia in Objective-C che in C semplice (e sono generalmente disponibili anche nei programmi C ++).
(Ahimè, non esiste alcuna habs(short)funzione. O del scabs(signed char)resto ...)
Le intestazioni Objective-C di Apple e GNU includono anche una ABS()macro che è di tipo agnostico. Non è consigliabile utilizzarlo ABS()tuttavia poiché non è garantito che sia sicuro per gli effetti collaterali. Ad esempio, ABS(a++)avrà un risultato indefinito.
Se stai usando C ++ o Objective-C ++, puoi inserire l' <cmath>intestazione e usare std::abs(), che è modellato per tutti i tipi interi e in virgola mobile standard.
ABS()non è sicuro per gli effetti collaterali su tutti i compilatori, motivo per cui non consiglio di usarlo.
extern float fabsf(float); extern double fabs(double);
È possibile utilizzare questa funzione per ottenere il valore assoluto:
+(NSNumber *)absoluteValue:(NSNumber *)input {
return [NSNumber numberWithDouble:fabs([input doubleValue])];
}