¿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.
Int
de magnitude
propiedadInt
Tiene una magnitude
propiedad. magnitude
tiene la siguiente declaración:
var magnitude: UInt { get }
Para cualquier valor numérico
x
,x.magnitude
es el valor absoluto dex
.
El siguiente fragmento de código muestra cómo usar la magnitude
propiedad para obtener el valor absoluto en una Int
instancia:
let value = -5
print(value.magnitude) // prints: 5
Int
fromabs(_:)
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 Int
instancia:
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