• A Confluence está sendo executada atualmente com todos os plugins que não são do sistema desabilitados. Pode haver perda de algumas funcionalidades

Árvore de páginas

Esta função permite criar um decimal com valor inicial, precisão e escala especificados. A precisão indica a quantidade total de dígitos do número, e a escala indica a quantidade reservada para as casas decimais do número. 

Sintaxe

DEC_CREATE( < xValue >, < iPrecision >, < iScale > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

xValue

qualquer

Indica o valor inicial do decimal. Somente caractere ou numérico.

X


iPrecision

numérico

Indica a precisão do decimal. O valor deve ser maior que zero e menor que 64.

X


iScale

numérico

Indica a escala do decimal. Valor deve ser maior ou igual a zero e menor que o parâmetro <iPrecision>.

X


Retorno

Nome

Tipo

Descrição

dRet

decimal de ponto fixo

Retorna o novo decimal criado.

Observações

  • Para utilizar qualquer cálculo aritmético com decimal de ponto fixo, é necessário criar primeiro o número decimal. Para isso, o parâmetro <xValue> deve ser do tipo caracter ou numérico. Porém, ser for passado qualquer outro tipo de dado não listado, a função lançará uma exceção para interromper a execução.
  • Se o parâmetro <xValue> for do tipo de dado caracter e o conteúdo da string não for um decimal válido, o decimal será criado e seu valor inicial será igual a 0.
  • Caso o valor passado nos parâmetros <iPrecision> e <iScale> contenham parte decimal, estes serão desconsiderados.
  • A criação de um valor com precisão em decimal de ponto fixo, quando informamos um número como parâmetro (e não uma string), está sujeito ao limite de precisão numérica pré-existente neste número. O número informado é interpretado pelo compilador como uma constante numérica, sujeita ao desvio de precisão decimal de ponto flutuante da linguagem AdvPL. Ao criarmos um número decimal de ponto fixo a partir desta constante compilada e tratada como um número na linguagem AdvPL, vamos obter um valor onde houve arredondamento na 15ª casa decimal. Para o decimal de ponto fixo ser criado corretamente a partir de um número constante, deve-se colocá-lo entre ASPAS, para a string representativa do número gerar o valor em memória.
  • Em builds superiores a 7.00.131227A, essa função sempre irá criar um número decimal, mesmo que este estoure a precisão definida (por iPrecision e iScale). Nessa situação, uma mensagem de atenção será impressa no console.

Exemplos

Exemplo 1
User Function Exemplo()
  Local dec1
  Local dec2
  dec1 := DEC_CREATE( "5.7591111111111119", 21, 20 ) // Constante entre aspas
  dec2 := DEC_CREATE( 5.7591111111111119, 21, 20 )
Return

Abrangência

Protheus 10, TOTVS Application Server 10, ByYou Application Server

Veja também


  • Sem rótulos