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é.
La fonction standard abs()
fonctionne très bien ici:
let c = -8
print(abs(c))
// 8
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.):
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 dex
.
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
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
Si vous voulez forcer un nombre à changer ou à le garder positif.
Voici le chemin:
abs() for int
fabs() for double
fabsf() for float
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