Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
|
Pagetitle | ||||
---|---|---|---|---|
|
...
Função: DEC_CREATE
Esta
...
função
...
permite
...
criar
...
um
...
decimal
...
com
...
valor
...
inicial,
...
precisão
...
e
...
escala
...
especificados.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
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