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é.
3 réponses
La Fonction Standard abs
fonctionne très bien ici
var c = -8
println(abs(c))
// 8
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 dex
.
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
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