Swift-convertir en valeur absolue

Existe-t-il un moyen d'obtenir une valeur absolue à partir 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é.

148
demandé sur Niko Adrianus Yuwono 2014-06-11 13:43:33

3 réponses

La Fonction Standard abs fonctionne très bien ici

var c = -8
println(abs(c))
// 8
328
répondu B.S. 2017-08-31 18:39:43

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


#1. Récupère la valeur absolue d'une propriété Int à partir de magnitude

Avec Swift 4, Int est un magnitude de la propriété. magnitude a la déclaration suivante:

var magnitude: UInt { get }

Pour n'importe quelle valeur numérique x, x.magnitude est la valeur absolue de x.

Le extrait de code suivant montre comment utiliser magnitude propriété afin d'obtenir la valeur absolue sur un Int exemple:

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

#2. Obtenir la valeur absolue d'un Int à partir de abs(_:) méthode

Swift 4 a une fonction numérique appelé abs(_:) la méthode. abs(_:) a la déclaration suivante:

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

Renvoie la valeur absolue du nombre donné.

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

let value = -5
print(abs(value)) // prints: 5
21
répondu Imanou Petit 2018-05-16 11:41:12

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

var c = -12.09
print(fabs(c)) // 12.09
c = -6
print(fabs(c)) // 6
-1
répondu Hamed Akhlaghi 2018-10-02 05:32:22