Duvida Idiota.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Duvida Idiota.

Mensagem 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
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Re: Duvida Idiota.

Mensagem 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



Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Mensagem 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.
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Mensagem 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"
Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Mensagem por anacatacombs »

Sim, com essa picture que está.
@E tal, tal, tal.tal
Grings
Usuário Nível 3
Usuário Nível 3
Mensagens: 340
Registrado em: 18 Ago 2004 13:51

Mensagem 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.
Avatar do usuário
filizola
Usuário Nível 3
Usuário Nível 3
Mensagens: 421
Registrado em: 19 Ago 2003 20:10
Localização: Belo Horizonte/MG

Mensagem 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 ????
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Mensagem 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 :*
Irineu
Usuário Nível 2
Usuário Nível 2
Mensagens: 61
Registrado em: 13 Ago 2003 22:01
Localização: Curitia-PR
Contato:

Mensagem 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.
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem 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...
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem 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?
"Eu e minha casa servimos ao Senhor e você ???"
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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...
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
anacatacombs
Membro Master
Membro Master
Mensagens: 472
Registrado em: 12 Jul 2005 16:53
Localização: Cianorte-Paraná
Contato:

Mensagem por anacatacombs »

E não é que funcionou?
Obrigada
:xau
Responder