ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

nao acho o erro

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
kakarlos
Experiente
Experiente


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 420

MensagemEnviada: Ter Out 21, 2014 9:33 pm    Assunto: nao acho o erro Responder com Citação

ola pessoal ...tenho um codigo aqui... ele nao me retorna nenhum erro mas tamber nao funciona.. se eu usar ele separadamente funciona perfeito mas aqui nao..




Código:

var1:='0';

  if (resultado >  resultado2) and (resultado <= FloatToStr(StrToFloat(resultado2)*(StrToFloat('2'))))  THEN
                     VAR1:='2';


showmessage(var1);





a mensagem que ele me retorna eh 0....
porque sera?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Qua Out 22, 2014 1:53 am    Assunto: Responder com Citação

pq vc ta transformando para Str ao fazer os calculos?
basta na hora de mostrar a mensagem. Outra coisa vc tem certeza que as variaveis estao sendo preenchidas corretamente ? acho melhor vc usar uns breakpoint para analizar linha por linha.
att.
Anderson.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Out 22, 2014 9:22 am    Assunto: Responder com Citação

Vou te dar uma sugestão, não utilize strings para fazer contas, isto acaba mais por confundir uma operação que poderia ser simplificada.
Se vai mostrar a mensagem, basta fazer um typecasting na variável.
Assim evita-se erros e conversões desnecessárias.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
kakarlos
Experiente
Experiente


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 420

MensagemEnviada: Qua Out 22, 2014 11:38 am    Assunto: Responder com Citação

anderbelluno escreveu:
pq vc ta transformando para Str ao fazer os calculos?
basta na hora de mostrar a mensagem. Outra coisa vc tem certeza que as variaveis estao sendo preenchidas corretamente ? acho melhor vc usar uns breakpoint para analizar linha por linha.
att.
Anderson.



cara verifiquei , as variaveis estao cendo preenchidas certas...
nao consigo entender o por que..
se eu nao transformar para Str de um erro...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jr.schon
Novato
Novato


Registrado: Quarta-Feira, 22 de Outubro de 2014
Mensagens: 4

MensagemEnviada: Qua Out 22, 2014 1:41 pm    Assunto: Responder com Citação

Olá, eu tive problema uma vez em fazer a conversão dentro do calculo.
Eu acabei fazendo as conversões antes, e depois os calculos.

Exemplo:

a := Round(strtofloat(edit1.text)+strtofloat(edit2.text));

Tive que fazer assim:
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=a+b;
d:=Round(c);


Faça um teste dessa maneira.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
kakarlos
Experiente
Experiente


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 420

MensagemEnviada: Qua Out 22, 2014 5:45 pm    Assunto: Responder com Citação

jr.schon escreveu:
Olá, eu tive problema uma vez em fazer a conversão dentro do calculo.
Eu acabei fazendo as conversões antes, e depois os calculos.

Exemplo:

a := Round(strtofloat(edit1.text)+strtofloat(edit2.text));

Tive que fazer assim:
a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=a+b;
d:=Round(c);


Faça um teste dessa maneira.




Cara.. eu ja havia tentado.
eh muito estranho nao funciona...

parace que nao esta funcionando a condição IF pois se eu colocar elas sozinhas funciona...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
DanielChrome
Novato
Novato


Registrado: Sexta-Feira, 18 de Outubro de 2013
Mensagens: 23

MensagemEnviada: Qui Out 23, 2014 11:56 am    Assunto: Responder com Citação

if (resultado > resultado2) and (resultado <= FloatToStr(StrToFloat(resultado2)*(StrToFloat('2')))) THEN
VAR1:='2';


Vamos analisar sua condição IF:

Se Resultado for MAIOR que resultado 2 E
Resultado for Menor ou Igual a Resultado2 * 2.

Nunca irá funcionar, pois você está quebrando a comparação. Em que situação o Resultado será MAIOR e (MENOR-IGUAL) ao mesmo tempo???

Melhore seu IF, ele está contráditorio.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
kakarlos
Experiente
Experiente


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 420

MensagemEnviada: Sex Out 24, 2014 11:16 am    Assunto: Responder com Citação

Cara nao eh isso ai nao ..
ja achei o erro bastava adicionar StrtoInt

if (strtoint(resultado) > strtotin(resultado2)) and (strtoint(resultado) <= FloatToStr(StrToFloat(resultado2)*(StrToFloat('2'));
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Seg Out 27, 2014 2:32 pm    Assunto: Responder com Citação

é 12 é maior q 5


mas

'5' é maior q '12'

entendeu?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Seg Out 27, 2014 2:40 pm    Assunto: Responder com Citação

kakarlos escreveu:
Cara nao eh isso ai nao ..
ja achei o erro bastava adicionar StrtoInt

if (strtoint(resultado) > strtotin(resultado2)) and (strtoint(resultado) <= FloatToStr(StrToFloat(resultado2)*(StrToFloat('2'));


Estou seguindo o seu post para tentar entender sua logica, mas até agora nao consigo entender quando Valor1 vai ser maior que Valor2 e ao mesmo tempo menor ou igual ao Valor2 * 2. Me parece meio impossivel que isso aconteça. Me corrija se estou errado, mas acho melhor vc rever sua logica.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
kakarlos
Experiente
Experiente


Registrado: Quinta-Feira, 30 de Setembro de 2010
Mensagens: 420

MensagemEnviada: Sáb Nov 01, 2014 8:32 am    Assunto: Responder com Citação

eu ja resolvi ... mas vou explicar...
se resultado for maior que resultado2 e resultado menor que duas vezes o resultado2...
oque eu estou fazer eh verificando se o resultado esta entre o resultado2 e o dobro do resultado2.....

ex:
resultado:=5
resultado2:=4


if *5 > *4 and *5 <= *8 then... .. o oito eh por que eh quatro multiplicado por 2..
assim verifico se ele esta dentro de uma determinada faixa..



nao sei se fui claro .... mas minha logica funcionou sim...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB