existe alguma maneira de obter valor absoluto de um número inteiro?
por exemplo
-8
to
8
Eu já tentei usar UInt () assumindo que ele converterá o Int em valor não assinado, mas não funcionou.
existe alguma maneira de obter valor absoluto de um número inteiro?
por exemplo
-8
to
8
Eu já tentei usar UInt () assumindo que ele converterá o Int em valor não assinado, mas não funcionou.
Respostas:
A abs()função padrão funciona muito bem aqui:
let c = -8
print(abs(c))
// 8
Com o Swift 5, você pode usar uma das duas maneiras a seguir para converter um número inteiro em seu valor absoluto.
IntfrommagnitudeInttem uma magnitudepropriedade magnitudetem a seguinte declaração:
var magnitude: UInt { get }
Para qualquer valor numérico
x,x.magnitudeé o valor absoluto dex.
O seguinte snippet de código mostra como usar a magnitudepropriedade para obter o valor absoluto em uma Intinstância:
let value = -5
print(value.magnitude) // prints: 5
Intfromabs(_:)Swift tem uma função numérica global chamada abs(_:)método. abs(_:)tem a seguinte declaração:
func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric
Retorna o valor absoluto do número fornecido.
O seguinte trecho de código mostra como usar abs(_:)a função global para obter o valor absoluto em uma Intinstância:
let value = -5
print(abs(value)) // prints: 5
abs(Int8.min)que não pode funcionar e, portanto, cria um erro de estouro.
Se você deseja forçar um número a mudar ou mantê-lo positivo.
Aqui está o caminho:
abs() for int
fabs() for double
fabsf() for float