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
- Abs(0) = 0 — preserva zero.
- Preserva tipo — Abs de Numeric continua Numeric.
- Em comparacoes, prefira
Abs(x - y) < toleranceax == ypra float.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nNumero | Numeric | sim | Valor numerico. |