NoRound
Trunca casas decimais sem arredondar. Int retorna so a parte inteira.
Assinatura: NoRound(nValor, nDec) -> nValor | Int(nValor) -> nValor
Retorna: Numeric
NoRound trunca um numero em N casas decimais — diferente de Round, nunca aumenta o valor. Int retorna so a parte inteira (equivale a NoRound(x, 0)).
Sintaxe
nTrunc := NoRound(nValor, nDecimais)
nInt := Int(nValor)Exemplo
Int(3.789) // 3 (parte inteira)
NoRound(3.789, 2) // 3.78 (trunca em 2 casas, nao arredonda pra 3.79)
NoRound(3.999, 2) // 3.99 (nao vai pra 4.00)
// Comparacao Round vs NoRound:
Round(0.005, 2) // 0.01 (arredonda pra cima)
NoRound(0.005, 2) // 0.00 (trunca)Quando usar
- Rateio fiscal: evita ICMS/IPI "sobrando" por arredondamento favoravel
- Comissoes: truncar pra nao pagar centavos a mais por arredondamento
- Calculos de medida: quando voce quer parte inteira
Pegadinha
Em portugues, "truncar" e diferente de "arredondar". Round pode aumentar, NoRound nunca aumenta. Em duvida fiscal, sempre prefira NoRound.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nValor | Numeric | sim | Valor a truncar |
nDec | Numeric | sim | Casas decimais a manter |
Exemplos
Rateio fiscal
nIcms := NoRound(nBase * 0.18, 2) // trunca, nao arredonda pra cima