GARANTIR DESCONTO

Fórum Executar Formula #357341

18/04/2008

0

Tenho uma tabela que existe um campo chamado calculo que tem uma formula exemplo 10 * V + 100

Ai eu vou substituir o valor V por algo exemplo 2,10
Ai estou precisando de alguma função que execute 10 * 2,10 + 100
Que vai dar 121

Existe alguma função que faça isso?


Rudá

Rudá

Responder

Posts

18/04/2008

Paulo

Não entendi bem, mas veja se é isto?

function calcula(v: Double):Double; begin Result := 10*v+100 end; como usar Procedure TForm1.btncalculaClick(Sender: TObject); var n: Double; begin n := StrToFloat(Edit1.Text); Edit2.Text :=FormatFloat(´0.00´, Calcula(n)); end;



Responder

Gostei + 0

18/04/2008

Cesar_gualberto

O que você precisa é de um interpretador.

Existe um componente chamado ´JvInterpreterProgram´ que pertence a JVCL.

A JVCL tem diversos componentes totalmente gratuitos. Eles podem ser baixados
aqui: http://jvcl.sourceforge.net


Abaixo temos um exemplo de uma string repassada para o interpretador que calcula o resultado.


procedure TForm1.Button1Click(Sender: TObject);
begin
JvInterpreterProgram1.Pas.Text := ´10 * 2.10 + 100´;
JvInterpreterProgram1.Run;
ShowMessage(JvInterpreterProgram1.VResult);
end;


Responder

Gostei + 0

18/04/2008

Rudá

Cesar,

É isso mesmo que eu queria.
Muito obrigado por sua ajuda.


Responder

Gostei + 0

19/04/2008

Marco Salles

pode tb pela simplicidade da expressão usar a função abaixo :


var
posIni,PosFim:integer;
 s:string;
 v,r,a,b,c:double;
begin
  s:=´10 * V + 100´;
  v:=2.1;
  s:=StringReplace(S,´V´,floattostr(v), [rfReplaceAll]);
  posIni:=pos(´*´,s);
  a:=strtofloat(trim(copy(S,1,posini-1)));
  posFim:=Pos(´+´,s);
  c:=StrtoFloat(trim(copy(s,posfim+1,length(s)-posFim)));
  r:=a*v+c;
  showmessage(floattostr(r));
end;


ps : [b:40491c6434]note que o resultado ´r´ é um double[/b:40491c6434]

[u:40491c6434]o excesso de variávei é somente para tornar mais didático...[/u:40491c6434]


Responder

Gostei + 0

19/04/2008

Rudá

Marco,

Mas não é sempre a mesma formula
Pode existir no banco de dados mais de 1000 tipo diferentes de formulas.


Responder

Gostei + 0

19/04/2008

Marco Salles

Marco, Mas não é sempre a mesma formula Pode existir no banco de dados mais de 1000 tipo diferentes de formulas.


eu pensei que fosse somente uma unica formula , ande o parametro a ser alterado seria o ´V´ ...

da para fazer , mas da um trabalho e tanto . Alem do mais o problema ja foi solucionado

Existe um componente chamado ´JvInterpreterProgram´ que pertence a JVCL.


então vamos deixar como esta beleza...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar