objective-c - linguagem - objective c syntax



Converter em valor absoluto em Objective-C (2)

Você pode usar essa função para obter o valor absoluto:

+(NSNumber *)absoluteValue:(NSNumber *)input {
  return [NSNumber numberWithDouble:fabs([input doubleValue])];
}

https://src-bin.com

Como faço para converter um número negativo em um valor absoluto no Objective-C?

ou seja

-10

torna-se

10?


Answer #1

Dependendo do tipo de sua variável, um de abs(int) , labs(long) , llabs(long long) , imaxabs(intmax_t) , fabsf(float) , fabs(double) ou fabsl(long double) .

Essas funções são todas parte da biblioteca padrão C e, portanto, estão presentes em Objective-C e em C simples (e também estão disponíveis em programas C ++).

(Infelizmente, não há função habs(short) . Ou scabs(signed char) para esse assunto ...)

Os cabeçalhos Objective-C da Apple e do GNU também incluem uma macro ABS() que é independente de tipo. Eu não recomendo usar o ABS() no entanto, como não é garantido que ele seja seguro contra efeitos colaterais. Por exemplo, o ABS(a++) terá um resultado indefinido.

Se você estiver usando C ++ ou Objective-C ++, poderá trazer o cabeçalho <cmath> e usar std::abs() , que é <cmath> para todos os tipos de inteiros padrão e de ponto flutuante.





objective-c