Erro de comparação Clipper x Visual Lib 123 = 123 da .F. ??

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Erro de comparação Clipper x Visual Lib 123 = 123 da .F. ??

Mensagem por rrfsistemas »

Tenho um sistema de Cartão de Crédito, uso a visual lib, quando comparo as variáveis abaixo o sistema retorna .F..
Creio que o motivo esteja na Lib, mas posso estar errado.

wvlrrecd = 252.50 - // Valor pago pelo cliente
wtotger = 252.50 - // Valor somado - dívida do cliente

If wvlrrecd = wtotger // pgto total

Já exibi os valores na tela e são exatamente iguais, inclusive na picture.

Gostaria de saber se alguém já viu este tipo de problema.


Desde ja agradeço.
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

Boa Tarde Renato, ja tive esse problema.
Sabe o que eu fiz...eu converti para caracter...ae foi di boa...na época entrei em pânico..rs..uma pessoa q poderia nos explicar isso é o Maligno...

// Faça isso q resolverá seu problema
If strzero(wvlrrecd,10,2) = strzero(wtotger ,10,2)

Tamanho foi o susto q fiz uma função para realizar comparações entre váriaveis numéricas...rs...

(Y)


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Caro Dudu

OBRIGADOOOO pela dica....

Consegui resolver parte do problema invertendo a comparação com sinais de <>,>=, <=

MAS a comparação (= a) terei que usar sua dica...

wvlrrecd = 252.50 - // Valor pago pelo cliente
wtotger = 252.50 - // Valor somado - dívida do cliente

If wvlrrecd = wtotger // pgto total

Será que o problema é da lib ???
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Colega

Esse é um erro do Clipper, é um bug até bem conhecido, e só tem um jeito da comparação dar certo. Convertendo para string e comparando.

Até logo.

Marcelo
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Caros colegas

como fazer para comparar se um valor é maior do que o outro ??
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado colega

Você pode comparar normalmente usando os operadores > (maior que), < (menor que), >= (maior ou igual a) ou <= (menor ou igual a), independentemente do dado ser do tipo caractere ou numérico, os 2 retornarão (se não fosse o bug do Clipper) o mesmo resultado, porém para fazer comparação de valores numérico é recomendável fazer a comparação transformando para caractere, isso por causa do bug de comparação de valores núméricos (ponto flutuante).

Até logo.

Marcelo
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Bom dia amiguinhos

estou feliz porque consegui resolver o meu "BUG"

troquei os if por Do Case e acreditem... RESOLVEU

OBRIGADOOOOO A TODOS.
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Responder