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.
Int
frommagnitude
Int
ha una magnitude
proprietà. magnitude
ha 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 magnitude
proprietà per ottenere il valore assoluto su Int
un'istanza:
let value = -5
print(value.magnitude) // prints: 5
Int
fromabs(_:)
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 Int
un'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