web-dev-qa-db-fra.com

Swift - Convertir en valeur absolue

y a-t-il un moyen d'obtenir la valeur absolue d'un entier?
par exemple 

-8  
to  
 8

J'ai déjà essayé d'utiliser UInt () en supposant qu'il convertira l'Int en valeur non signée, mais cela n'a pas fonctionné.

158

La fonction standard abs() fonctionne très bien ici:

let c = -8
print(abs(c))
// 8
359
B.S.

Selon vos besoins, avec Swift 4, vous pouvez utiliser l'une des deux méthodes suivantes pour résoudre votre problème (fonctionne également pour d'autres variables numériques, telles que CGFloat, Double, etc.):


#1. Obtenir la valeur absolue d'une propriété Int from magnitude

Avec Swift 4, Int a une magnitude property. magnitude a la déclaration suivante:

var magnitude: UInt { get }

Pour toute valeur numérique x, x.magnitude est la valeur absolue de x.

L'extrait de code suivant montre comment utiliser la propriété magnitude afin d'obtenir la valeur absolue sur une instance Int:

let value = -5
print(value.magnitude) // prints: 5

# 2. Obtient la valeur absolue d'une méthode Int from abs(_:)

Swift 4 a une fonction numérique globale appelée abs(_:) method. abs(_:) a la déclaration suivante:

func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric

Retourne la valeur absolue du nombre donné.

L'extrait de code suivant montre comment utiliser la fonction globale abs(_:) afin d'obtenir la valeur absolue sur une instance Int:

let value = -5
print(abs(value)) // prints: 5
28
Imanou Petit

Si vous voulez forcer un nombre à changer ou à le garder positif.
Voici le chemin:

abs() for int
fabs() for double
fabsf() for float
3
Sourabh Kumbhar

Si vous voulez obtenir la valeur absolue d'un double ou d'un Int, utilisez fabs func:

var c = -12.09
print(fabs(c)) // 12.09
c = -6
print(fabs(c)) // 6
0
Hamed Akhlaghi