Árvore de páginas

Permite alterar a precisão e a escala de um decimal de ponto fixo.

Sintaxe

DEC_RESIZE( < dNum >, < nPrecision >, < nScale >, [ nRound ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

dNum

decimal de ponto fixo

Indica o número que será alterado.

X

 

nPrecision

numérico

Indica a quantidade de dígitos do decimal.

X

 

nScale

numérico

Indica a quantidade de casas decimais.

X

 

nRound

numérico

Indica o tipo de arredondamento das casas decimais.

 

 

Retorno

Nome

Tipo

Descrição

dRet

decimal de ponto fixo

Retorna o decimal modificado de acordo com os parâmetros informados.

Observações

  • <nPrecision> deve ser maior que zero e menor que 64.
  • <nScale> deve ser maior ou igual a zero e menor que <nPrecision>.
  • Os valores válidos de <nRound> são:

    Número

    Exemplo

    0 - Arredonda 5 para cima

    Realiza o arredondamento tornando .5 em 1

    1 - Arredonda 5 para baixo

    Realiza o arredondamento tornando .5 em 0

    2 - Dispensa casas (Truncate)

    Realiza o arredondamento eliminando as casas especificadas.

  • O valor padrão de <nRound> é 2.
  • Caso <dNum> não seja do tipo decimal, ou <nScale> seja menor que 0 ou maior o igual à <nPrecision>, ou <nRound> seja menor que 0 ou maior que 2, uma exceção será lançada para interromper a execução.
  • Até a build 7.00.131227A, caso o parâmetro <nRound> fosse especificado, o valor atribuído ao mesmo era o mesmo valor do parâmetro <nScale>, gerando comportamentos inesperados. Esse problema foi corrigido em builds superiores a 7.00.131227A.

Exemplos

Exemplo 1
User Function Exemplo()
  Local dec1
  Local dec2
  dec1 := DEC_CREATE( 5.759, 4, 3 ) // = 5.759
  dec2 := DEC_RESIZE( nvar1, 3, 2 ) // = 5.75
return

Abrangência

Protheus 10, TOTVS Application Server 10, ByYou Application Server

  • Sem rótulos