c'è un modo per ottenere il valore assoluto da un numero intero?
per esempio
-8
to
8
Ho già provato a usare UInt () supponendo che convertirà Int in valore senza segno ma non ha funzionato.
c'è un modo per ottenere il valore assoluto da un numero intero?
per esempio
-8
to
8
Ho già provato a usare UInt () supponendo che convertirà Int in valore senza segno ma non ha funzionato.
Risposte:
La abs()funzione standard funziona alla grande qui:
let c = -8
print(abs(c))
// 8
Con Swift 5, puoi utilizzare uno dei due seguenti modi per convertire un numero intero nel suo valore assoluto.
IntfrommagnitudeIntha una magnitudeproprietà. magnitudeha la seguente dichiarazione:
var magnitude: UInt { get }
Per qualsiasi valore numerico
x,x.magnitudeè il valore assoluto dix.
Il frammento di codice seguente mostra come utilizzare la magnitudeproprietà per ottenere il valore assoluto su Intun'istanza:
let value = -5
print(value.magnitude) // prints: 5
Intfromabs(_:)Swift ha una funzione numerica globale chiamata abs(_:)metodo. abs(_:)ha la seguente dichiarazione:
func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric
Restituisce il valore assoluto di un determinato numero.
Il frammento di codice seguente mostra come utilizzare abs(_:)la funzione globale per ottenere il valore assoluto su Intun'istanza:
let value = -5
print(abs(value)) // prints: 5
abs(Int8.min)non può funzionare e quindi crea un errore di overflow.
Se vuoi forzare un numero a cambiare o mantenerlo positivo.
Ecco il modo:
abs() for int
fabs() for double
fabsf() for float