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

:*
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