hay alguna forma de obtener valor absoluto de un número entero?

por ejemplo

-8  
to  
 8

Ya he probado a utilizar UInt() suponiendo que se va a convertir la Int a valor sin signo, pero no funcionó.

  • cast/convertir nunca debe utilizarse para cambiar el valor

4 Comentarios

  1. 395

    El estándar abs() función de las grandes obras aquí:

    let c = -8
    print(abs(c))
    // 8
    • Buen info man! Gracias! Voy a aceptar la respuesta después de 10 minutos 🙂
    • Lo que se necesita para ser importados a usar el abs()?
    • la importación de la Fundación
    • Usted puede importar Darwin o la Fundación
    • No es de Darwin parte de la Fundación?
    • no funciona para Int8(-128) – esto hará que EXC_BAD_INSTRUCTION
    • Este es el esperado. Consulte Apple explicación.
    • gracias por el enlace y la explicación

  2. 35

    Con Swift 5, usted puede utilizar una de las dos siguientes maneras con el fin de convertir un entero a su valor absoluto.


    #1. Obtener valor absoluto de un Int de magnitude propiedad

    Int tiene un magnitud de la propiedad. magnitude tiene la siguiente declaración:

    var magnitude: UInt { get }

    Para cualquier valor numérico x, x.magnitude es el valor absoluto de x.

    El siguiente fragmento de código muestra cómo utilizar magnitude de la propiedad con el fin de obtener el valor absoluto de un Int ejemplo:

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

    #2. Obtener valor absoluto de un Int de abs(_:) método

    Swift tiene un mundial numérico de la función 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 utilizar abs(_:) función global con el fin de obtener el valor absoluto de un Int ejemplo:

    let value = -5
    print(abs(value)) // prints: 5
    • de impresión(abs(Int.min)) no funciona. Existe alguna solución para Swift 3? No he actualizado mi proyecto, sin embargo.
    • Se perdió la oportunidad de decir «obtener el valor absoluto de un Intpostura»
    • Consulte Apple explicación para entender por qué abs(Int8.min) no puede trabajar y por lo tanto crea un error de desbordamiento.
  3. 6

    Si quieres forzar un número para cambiar o mantener una actitud positiva.

    Aquí es el camino:

    abs() for int
    fabs() for double
    fabsf() for float
    • fab es obsoleto
  4. 2

    Si quieres obtener valor absoluto de un double o Int, uso fabs func:

    var c = -12.09
    print(fabs(c)) //12.09
    c = -6
    print(fabs(c)) // 6
    • Sí, tienes razón, pero mi enfoque estaba en fabs, disculpe

Dejar respuesta

Please enter your comment!
Please enter your name here