Formatação de números em um get

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

CARLOS GOMES
Usuário Nível 1
Usuário Nível 1
Mensagens: 38
Registrado em: 16 Ago 2003 18:59
Localização: Duque de Caxias - RJ

Formatação de números em um get

Mensagem por CARLOS GOMES »

:shock:
Olá!
Estou com um problema quando digito em get um numero que contém décimos, por exemplo: 234,33.
Enquanto estou no get a formatação permanece, o problema e depois de
gravado no dbf, quando vou reapresentar o numero na tela, aparece da
seguinte forma: 234,00 ou seja a parte decimal foi arredondada, necessito que os decimos façam parte do numero, nao sei o que fazer,
peço ajuda......

Obs: a mascara de digitação que uso: "999,999.99"


Atenciosamente
Carlos Gomes
acferreiragomes@ig.com.br
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Amigo,

Verifique o seguinte:
1º - Olhe no seu DBF se a estrutura está para 02 casas decimais, assim:
campo, N, 9, 2.

2º - Em máscaras de digitação de valores utilize sempre "@E 99,999.99".


Janio
CARLOS GOMES
Usuário Nível 1
Usuário Nível 1
Mensagens: 38
Registrado em: 16 Ago 2003 18:59
Localização: Duque de Caxias - RJ

Mensagem por CARLOS GOMES »

Muito obrigado Jânio.
Realmente o meu dbf estava configuardo as casas decimais em 0.

Valeu!
Estou em débito, quando precisar estou pronto para ajudar.

Até breve
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

CARLOS GOMES escreveu:Muito obrigado Jânio.
Vc não tem do que agradecer.
Sou iniciante em clipper e estou neste mundo da programação há apenas alguns meses, porém já consegui fazer muita coisa. Este fórum tem sido essencial para o meu aprendizado. Fico muito feliz quando alguém responde a uma dúvida que tenho e minha obrigação é somente retribuir quando algum amigo tiver uma dificuldade.

Janio
Avatar do usuário
Clash
Usuário Nível 2
Usuário Nível 2
Mensagens: 81
Registrado em: 11 Set 2004 11:14
Localização: Divinópolis (MG)

Arredondamento

Mensagem por Clash »

Olá Amigos, Carlos e Jânio!

Pegando carona, realmente este fórum é o HELP que precisamos.

Só um complemento quanto ao uso das casas decimais, estou começando a adotar em alguns sistemas que requerem calculos com porcentagem(lucro, juros,etc..) três ou até mesmo quatro casas decimais para na hora do retorno, conseguir valores exatos.
Sem falar do comando SET DECIMALS, e da rotina para arredondamento em divisão na forma de pagamento.

[ ]s
Clash
gransoft
Usuário Nível 3
Usuário Nível 3
Mensagens: 321
Registrado em: 06 Jul 2004 17:48
Localização: UBERLÂNDIA-MG
Contato:

Arredondamentos...

Mensagem por gransoft »

Clash escreveu:... cálculos com porcentagem (lucro, juros, etc..) três ou até mesmo quatro casas decimais para na hora do retorno, conseguir valores exatos...
ARAGUARI-MG, 17 de setembro de 2004.

Prezados Srs.,

E ... complementando a paranóia dos ARREDONDAMENTOS, em certas situações um ECF "trava" sem motivo aparente...

Código: Selecionar todos

* ARREDONDA SEGUNDA CASA DECIMAL
* nSubTotal := INT(((nQtd * nUnit) * 100.00) + 0.50) / 100.00
* ARREDONDA TERCEIRA CASA DECIMAL
* nSubTotal := INT(((nQtd * nUnit) * 1000.00) + 0.050) / 1000.00
                *
                * 2.75 x 3.30 = 9.075    9.08ecf 9.07ped
                *
                * 0.55 x 6.90 = 3.795    3.80ecf 3.79ped
                *
                * 0.35 x 5.50 = 1.925    1.93ecf 1.92ped
                *
                * 0.55 x 10.90 = 5,995   
                *
E aparentemente, a explicação coerente para o "fenômeno" é a Norma ABNT NBR 5891, acessem:
http://www.gransoft.com/doc/abnt5891.html

Atenciosamente,
Janis Peters Grants.

http://www.gransoft.com.br
gransoft@zipmail.com.br
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinhos

Mais um complemento quanto as máscaras:

O Clipper 5.2 para frente possue um bug no posicionamento do ponto dentro de um GET numérico, fazendo com que ao digitarmos um numero e pressionar o ponto para pular os decimais, aparecem dois pontos decimais impossibilitando a digitação, portanto use sempre as mascaras para os campos nuéricos que possuam decimais.

Quanto aos campos nas tabelas como estoque e financeiros eu adotei o uso de até 4 casas decimais ns campos numéricos, hoje não me importo mais se vai ocupar bytes a mais ou menos, o cliente que adquira HDs maiores e mais memória.

Desta forma, não é necessário modificar a estrutura dos .DBFs e sim o formato da máscara que para um mesmo campo poderá ser diferente, vejam o exemplo para o campo QUANTIDADE de minha tabela ESTOQUE:

Tenho uma tabela de unidades de medias onde cadastro cada tipo de medida usado no estoque que contem campos como:

sigla: KG, MT, M2, UN, respectivamente Kilos, Metros, Metro quadrado, Unidade, etc.

Cada sigla tem armazenada sua mascara de configuração dos GETs desta forma:

@E 99999.999, @E 999999.99, @E 999999.99, @E 999999999

Vejam que a mascara possui tamanho 9, conta-se o ponto também, neste caso o campo em minha tabela possui 9 digitos mais quatro decimais, ou seja 999999999.9999, quatorze digitos de tamanho.

E no momento de trabalhar com estes campos, dependendo da sigla eu apresento a mascara adequada, desta forma os dados ficam bem formatados e sem esforço algum.

A tabela esta em http://www.softclever.com/downloads/unidades.dbf

@braços :?)
Responder