Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
portuguese
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css

Pagetitle
DEC_CREATE
DEC_CREATE

...

Função: DEC_CREATE

Esta

...

função

...

permite

...

criar

...

um

...

decimal

...

com

...

valor

...

inicial,

...

precisão

...

e

...

escala

...

especificados.

Sintaxe

Bloco de código
collapsefalse
DEC_CREATE( <
xValorInicial>
 xValue >, <
iPrecisao>
 iPrecision >, <
iEscala> ) --> dDecimal
 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.

...

User Function DecEx()
Local dfTest
dfTest := DEC_CREATE(5.7591111111111119,21,20)
alert(dec2)
Return
 

...

  • 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

Bloco de código
themeEclipse
languagecpp
titleExemplo 1
linenumberstrue
collapsefalse
User Function Exemplo()
  Local dec1
  Local dec2
  dec1
(apenas em versões superiores a 7.00.131227A)

 

Local dec1Local dec2dec1
 := DEC_CREATE( "
25
5.
759
7591111111111119",
15,2)
 21, 20 ) // Constante entre aspas
  dec2 := DEC_CREATE(
25
 5.
759
7591111111111119,
15,2)
 21, 20 )
Return

Abrangência

Protheus 10, TOTVS Application Server 10, ByYou Application Server

Veja também