Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Converter Resultado Real, para Resultado Inteiro


valSistemasDelphi

Pergunta

Fala galera. Tenho uma dúvida! Tenho 3 Edits No formulário.. 2 recebem valores Reais, e o outro e para cair o resultado nele da conta. Como faço para converter esse resultado que está aparecendo tipo 69,456546, Quero que Fique só Inteiro.. Tentei Pelo Int mais sempre dá erro.. Desculpe se não fui muito claro.

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Desculpa não expliquei direito, os valores o usuário digita por meio de dois Edits. Que são Reais, ai quando ele clica no Speed o valor aparece em um panel, mais quero que apareça, os valores daquele determinada Multiplicação.

 

Tipo 105,90  * 0,664230, Por exemplo Tarifa. Dá 70.341957 o resultado. Quero que fique por exemplo da seguinte forma, R$70,34. Só .. 

 

Link para o comentário
Compartilhar em outros sites

  • 0

É só modificar o código

exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var num : real;
begin
   num := strtofloat(Edit1.Text); // 105,90
   num := num * strtofloat(Edit2.Text); // 0,664230
   Edit3.Text := formatfloat('R$ ,0.00',num);
   // resultado R$ 70,34
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

voce esta usando edits para colocar o valor .... veja esse link

mas se quiser menos trabalho, voce pode usar o componente MaskEdit1da paleta Additional ( nele voce já coloca a mascara que voce precisa )

ou o componente CurrencyEdit da paleta RxControl da biblioteca RXLIb... nesse componente voce não precisa fazer nada 

http://www.planetadelphi.com.br/download/870/componente/rxlib-para-delphi-7

OBS: se a versão do seu delphi não for o delphi 7 , voce pode procurar os componentes para a versão que voce esta usando

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

OK... o evento OnKeyPress do Edit é acionado toda vez que voce digita algum caracter nele

no entanto, esse edit vai receber apenas numeros

if not (key in ['0'..'9',',', #8]) then
      
       key := #0   /// Se não for numero não aceita o caracter no Edit
    else
    
       FNUMD(Edit1,trim(Edit1.text),key,20,2); /// Se for numero executa a função

A função FNUMD, vai fazer a mesma coisa como se voce estivesse digitando numeros em uma calculadora.

function FNUMD(Objeto: TEdit; Texto, VKey: String; Espaco, Decimal: Integer): String;

FNUMD(Edit1,trim(Edit1.text),key,20,2);

Então voce vai passar os valores dos parametros que a função esta pedindo

- que é o texto do Edit,
- o valor de Key ( chave ) que esta no parametro do evento OnkeyPress do Edit
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

- o tamanho maximo do espaço que voce quer digitar
- e o valor decimal do numero, depois que voce digitar a virgula ou ponto

quando voce finalizar a entrada do numero com a tecla Enter, então o numero
é formatado

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

    if key = #13 then
       begin
          Edit1.text := format('%20s',['R$ '+ trim(Edit1.text)]) ;
          exit;
       end;

OBS: Se voce quiser usar dessa maneira, voce tem que fazer isso em cada Edit

mas como te falei, fica mais facil usar o MaskEdit ou o CurrencyEdit ( nesse caso é só fazer o calculo e jogar o resultado dentro deles.

Se voce tem duvidas quanto ao usar o comando Format veja no help do delphi ( F1 ) sobre o comando Format e FormatStrings

Link para o comentário
Compartilhar em outros sites

  • 0

amigo, não vejo onde está a sua dificuldade com isso

procedure TForm1.Button1Click(Sender: TObject);
var num : real;
begin
   num := strtofloat(Edit1.Text); // 105,90
   num := num * strtofloat(Edit2.Text); // 0,664230
   CurrencyEdit1.Value := num;
   // resultado R$ 70,34
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   CurrencyEdit1.Value := CurrencyEdit2.Value * CurrencyEdit3.Value;
end;

O componente MaskEdit funciona como um Edit, com a diferença que voce pode colocar a mascara nele ( propriedade EditMask )

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...