Abs

Retorna valor absoluto (sem sinal). Negative vira positive, positive nao muda. Util pra calcular diferencas e distancias.

Assinatura: Abs(nNumero) -> nAbsoluto

Retorna: Numeric

Abs retorna o valor absoluto — distancia de zero, sempre nao-negativa.

Sintaxe

Abs(nNumero) --> nValor

Exemplos

Abs(5)               // 5
Abs(-5)              // 5
Abs(0)               // 0
Abs(-3.14)           // 3.14
Abs(-1234.56)        // 1234.56

Casos praticos

1. Diferenca entre dois valores (sempre positiva)

// "Quantos dias de diferenca tem entre essas datas?"
nDif := Abs(dData1 - dData2)
// Funciona independente de qual data e maior

// Variacao de saldo
nVariacao := Abs(nSaldoAnt - nSaldoAtu)
ConOut("Variacao: " + cValToChar(nVariacao))

2. Validar tolerancia

// Aceita pequena diferenca (arredondamento)
If Abs(nEsperado - nObtido) < 0.01
    // dentro da tolerancia
EndIf

3. Calcular distancia em listas

// Quao "longe" um indice esta do meio
nMeio := Int(Len(aArr) / 2) + 1
nDistDoMeio := Abs(i - nMeio)

4. Saldo financeiro absoluto

// Mostra "deve R$ 500" independente do sinal interno
nSaldo := SE1->E1_VALOR - SE1->E1_VALLIQ
If nSaldo < 0
    cMsg := "Cliente em haver: R$ " + cValToChar(Abs(nSaldo))
Else
    cMsg := "Cliente deve: R$ " + cValToChar(nSaldo)
EndIf

Pegadinhas

Parâmetros

NomeTipoObrigatórioDescrição
nNumeroNumericsimValor numerico.

Veja também