Como converter um número negativo em um valor absoluto em Objective-C?
ie
-10
torna-se
10?
objective-c
conservatório
fonte
fonte
Respostas:
Dependendo do tipo da sua variável, um dos
abs(int)
,labs(long)
,llabs(long long)
,imaxabs(intmax_t)
,fabsf(float)
,fabs(double)
, oufabsl(long double)
.Essas funções fazem parte da biblioteca padrão C e, portanto, estão presentes no Objective-C e no C simples (e geralmente também estão disponíveis nos programas C ++).
(Infelizmente, não há
habs(short)
função. Ou,scabs(signed char)
nesse caso ...)Os cabeçalhos Objective-C da Apple e do GNU também incluem uma
ABS()
macro independente do tipo. NoABS()
entanto, não recomendo o uso, pois não é garantido que seja seguro contra efeitos colaterais. Por exemplo,ABS(a++)
terá um resultado indefinido.Se você estiver usando C ++ ou Objective-C ++, poderá trazer o
<cmath>
cabeçalho e usá-lostd::abs()
, que é modelado para todos os tipos de número inteiro e ponto flutuante padrão.fonte
ABS()
não é seguro para todos os compiladores, e é por isso que não recomendo usá-lo.extern float fabsf(float); extern double fabs(double);
Você pode usar esta função para obter o valor absoluto:
fonte