Página 1 de 1

Duvida Idiota.

Enviado: 13 Dez 2005 14:25
por anacatacombs
Boa tarde.

Pra maioria de vocês, essa dúvida pode parecer idiota, mas infelizmente pra mim não.
Tenho um uma variavel numérica de memória, que foi declarada assim
Numero := 0
agora preciso dar o tal do get e mostra-la da seguinte maneira: 999.999.999,99999999
Na hora de mostrar, beleza, mas na hora de dar o GET ele não considera o último digito.
Já verifique coordenadas de tela, código picture, e qualquer outra coisa que minha cabecinha de pequena-programadora imaginou.
Existe algum limite? O.o

Aguardo resposta.
Ana

Re: Duvida Idiota.

Enviado: 13 Dez 2005 15:39
por Antonio
anacatacombs escreveu:Boa tarde.

Pra maioria de vocês, essa dúvida pode parecer idiota, mas infelizmente pra mim não.
Tenho um uma variavel numérica de memória, que foi declarada assim
Numero := 0
agora preciso dar o tal do get e mostra-la da seguinte maneira: 999.999.999,99999999
Na hora de mostrar, beleza, mas na hora de dar o GET ele não considera o último digito.
Já verifique coordenadas de tela, código picture, e qualquer outra coisa que minha cabecinha de pequena-programadora imaginou.
Existe algum limite? O.o

Aguardo resposta.
Ana
Compile o trecho de programa e veja se funciona, compilei com xHarbour e ficou da forma que voce pretende.

Código: Selecionar todos


func main()
     local Numero := 0
     cls

     while .t.
if lastkey() = 27
   quit
endif

@ 10,10 say "Minha Var: " get numero picture "@E 999,999,999.99999999"

read
end
return nil




Enviado: 13 Dez 2005 16:06
por anacatacombs
Olá Antonio.
é dessa forma que estou fazendo e não funciona O.o
o engraçado é que tenho um get com um tamanho um pouco menor da mesma forma e funciona.
E esse não funciona.
E com 7 casas decimais também funciona.
por isso perguntei do limite.
Uso o Clipper 5.2 E e blinker 7.

Enviado: 13 Dez 2005 16:45
por Antonio
anacatacombs escreveu:Olá Antonio.
é dessa forma que estou fazendo e não funciona O.o
o engraçado é que tenho um get com um tamanho um pouco menor da mesma forma e funciona.
E esse não funciona.
E com 7 casas decimais também funciona.
por isso perguntei do limite.
Uso o Clipper 5.2 E e blinker 7.
Note o uso da mascara:

picture "@E 999,999,999.99999999"

Enviado: 13 Dez 2005 16:58
por anacatacombs
Sim, com essa picture que está.
@E tal, tal, tal.tal

Enviado: 13 Dez 2005 17:34
por Grings
Fiz o mesmo e também deu erro. Se digitar 9 em todo o campo arredonda e aparece * em tudo. Seve ser algum BUG.

Enviado: 13 Dez 2005 18:07
por filizola
pelo visto o numero máximo de casas decimais no clipper é de 7, mas porque vc usaria mais que sete decimais em um cálculo ????

Enviado: 13 Dez 2005 22:01
por anacatacombs
Esse sistema é de uma lavanderia
as vezes, na quantidade, é utilizado gramas, miligramas, blibliligramas, e eles usam assim: Quantidade, 0,0000025 gramas
Os produtos que eles utilizam são fortíssimos, e a grande parte deles só pode ser utilizado em pequena quantidade.

Agradeço a todos pelas respostas
:D :*

Enviado: 14 Dez 2005 08:58
por Irineu
Vc tentou linkar com o exospace pra ver se funciona ?

Pois eu fiz o mesmo exemplo seu com 16 casas decimais e funciona direitinho.

Enviado: 14 Dez 2005 10:18
por Augusto
Parceira Ana,

Eu sei q vc já respondeu mas vou reforçar o colega Antonio:
O Clipper utiliza o método de "pontuação" americano logo o PONTO é que faz a separação dos decimais e a VIRGULA dos milhares, milhões etc. Caso vc queira que o get seja no formato europeu que no caso é o mesmo do Brasil, utilize a máscara precedida de @E (Ex: @ lin,col get sua_var pict "@e 999,999,999.99999999") ok ?

Quanto a quantidade de dígitos na casa decimal, veja o que diz o manual (original) do Clipper:
Seção "Tipos de Dados"
Tipo: NUMÉRICO
Definicão: O tipo numérico é usado para identificar ítens que você deseja manipular matematicamante (somar, subtrair, multiplicar etc). O conjunto numérico do Clipper é definido como dígitos de zero a nove, ponto dicimal e sinal de adição e subtração de forma a identificar um número positivo ou negativo.
Com a exceção de campos o Clipper guarda valores numéricos usando o formato padrão IEEE de ponto flutuante de precisão dupla, na faixa de 10^-308 até 10^308. A precisão numérica é garantida até 16 dígitos significativos e um número pode ser formatado até tamanho 32 (i.e., 30 dígitos, um sinal e um ponto dcimal). Isto significa que números maiores que 32 dígitos podem ser exebidos como asteriscos e dígitos que não os 16 significativos serão exibidos como zeros.
Quando um valor é guardado dentro de um campo do arquivo (.dbf), eele é convertido do formato IEEE para um formato que pode ser exibido. Quando um campo numérico é trazido de um aqruivo, ele é convertido para o formato IEEE antes de qualquer operção a ser executada com ele. Desde que o formato exibível de um número é garantido até o tamanho máximo de 32 bytes, este é o maior comprimento recomendado para um campo numérico.
Literais numéricos são formados colocando-se junto a eles um ou mais dos seguintes sinais: um sinal positivo ou negativo, um ou mais dígitos representando a porção inteira do número, um ponto decimal, e um ou mais dígitos representando a parte fracionária.


Uma outra definição, porém mais simples extraída do livro de Antonio G.R. Vidal (Clipper) ele diz o seguinte:
- Campo numérico (tipo N): Quanto aos dados a serem nele armazenados possuírem, na sua composição, somente caracteres numéricos, os sinais + ou - e o ponto decimal (o ponto decimal, e não vírgula, pois o Clipper utiliza o sistema americano). Estes campos destinam-se ao armazenamento de dados com os quais se realizarão cálculos matemáticos. Um campo numérico pode conter até 19 dígitos ou posições, com até 18 casas decimais.

Espero ter coloborado...

Enviado: 18 Dez 2005 16:01
por rubens
Não tenho clipper neste computador.. nao posso testar ... mas a variavel que ele declara nao deveria ser:
var := 0.00000 algo assim?

Enviado: 18 Dez 2005 16:01
por Stanis Luksys
TENTA ASSIM:

Código: Selecionar todos

set decimals to 7

@ 0 , 0 say "Numero com sete decimais:" get nNum pict "999,999,999.9999999"
read

set decimals to 2
Quem sabe né? num custa tentar...

Enviado: 19 Dez 2005 11:37
por anacatacombs
E não é que funcionou?
Obrigada
:xau