¿Hay alguna manera de obtener un valor absoluto de un entero?
por ejemplo
-8
to
8
Ya intenté usar UInt () suponiendo que convertirá el Int a un valor sin signo, pero no funcionó.
¿Hay alguna manera de obtener un valor absoluto de un entero?
por ejemplo
-8
to
8
Ya intenté usar UInt () suponiendo que convertirá el Int a un valor sin signo, pero no funcionó.
Respuestas:
La abs()función estándar funciona muy bien aquí:
let c = -8
print(abs(c))
// 8
Con Swift 5, puede usar una de las dos formas siguientes para convertir un número entero a su valor absoluto.
Intde magnitudepropiedadIntTiene una magnitudepropiedad. magnitudetiene la siguiente declaración:
var magnitude: UInt { get }
Para cualquier valor numérico
x,x.magnitudees el valor absoluto dex.
El siguiente fragmento de código muestra cómo usar la magnitudepropiedad para obtener el valor absoluto en una Intinstancia:
let value = -5
print(value.magnitude) // prints: 5
Intfromabs(_:)Swift tiene una función numérica global llamada abs(_:)método. abs(_:)tiene la siguiente declaración:
func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric
Devuelve el valor absoluto del número dado.
El siguiente fragmento de código muestra cómo usar abs(_:)la función global para obtener el valor absoluto en una Intinstancia:
let value = -5
print(abs(value)) // prints: 5
abs(Int8.min)no puede funcionar y, por lo tanto, crea un error de desbordamiento.
Si desea forzar un número a cambiar o mantenerlo positivo.
Aquí está el camino:
abs() for int
fabs() for double
fabsf() for float