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.
Int
frommagnitude
Int
tem uma magnitude
propriedade magnitude
tem 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 magnitude
propriedade para obter o valor absoluto em uma Int
instância:
let value = -5
print(value.magnitude) // prints: 5
Int
fromabs(_:)
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 Int
instâ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