Arredondar valor 2,1999 para 2,20

28/03/2003

0

Ola amiguinhos(as) estou com outro serio problema, consegui fazer o calculo do percentual, mas eu nao posso ter numero quebrado, portanto gostaria de uma ajuda de voces para que quando eu clicar no botao para fazer o calculo do percentual o mesmo pegue o valor e arredonde.

estou fazendo o seguinte calculo

750,00 multiplico por 11,71¬ e multiplico o resultado por 2,5¬ na minha maquina de calcular ele acha 2,20 mas no meu programa ele acha 2,195625. Como faço para ARREDONDAR para 2,20

Sem Mais Agradeço e fico no aguardo de uma ajuda....

Atenciosamente


Luciano Mattos


Noproblem

Noproblem

Responder

Posts

28/03/2003

Aroldo Zanela

Ola amiguinhos(as) estou com outro serio problema, consegui fazer o calculo do percentual, mas eu nao posso ter numero quebrado, portanto gostaria de uma ajuda de voces para que quando eu clicar no botao para fazer o calculo do percentual o mesmo pegue o valor e arredonde. estou fazendo o seguinte calculo 750,00 multiplico por 11,71¬ e multiplico o resultado por 2,5¬ na minha maquina de calcular ele acha 2,20 mas no meu programa ele acha 2,195625. Como faço para ARREDONDAR para 2,20 Sem Mais Agradeço e fico no aguardo de uma ajuda.... Atenciosamente Luciano Mattos

Luciano,

Verifique se na versão do Delphi que você está utilizando possui a função RoundTo e inclua a unit Math na lista de uses.
Se sua versão não possuir, verifique aqui no fórum que eu já postei o código da mesma.


Responder

28/03/2003

Noproblem

Bom, meu delphi tem o Math e tem a function roundto, mas como iniciante infelizmente nao consegui colocar isso na minha unit. vafor verificar o que eu fiz de errado.

peguei minha unitprincipal
inclui no USES o MATH

mas nao sei onde inserir a function nem qual o codigo a ser usado. recorri ao help do delphi7 mas nao obtive sucesso, pois o mesmo pede para eu colocar [b:8114e9294c]TYPE TRoundToRange = -37..37;[/b:8114e9294c]
mas da a seguinte mensagem de erro: [b:8114e9294c]expected´:´but´=´found.[/b:8114e9294c]

favor ajudar.

Atenciosamente

Luciano Mattos


Responder

28/03/2003

Jonhy Riper

É simples, mas resolve:
NovoValor:=(round(Valor*100)/1000) ;


Responder

28/03/2003

Aroldo Zanela

Bom, meu delphi tem o Math e tem a function roundto, mas como iniciante infelizmente nao consegui colocar isso na minha unit. vafor verificar o que eu fiz de errado. peguei minha unitprincipal inclui no USES o MATH mas nao sei onde inserir a function nem qual o codigo a ser usado. recorri ao help do delphi7 mas nao obtive sucesso, pois o mesmo pede para eu colocar [b:c6a72c6e6d]TYPE TRoundToRange = -37..37;[/b:c6a72c6e6d] mas da a seguinte mensagem de erro: [b:c6a72c6e6d]expected´:´but´=´found.[/b:c6a72c6e6d] favor ajudar. Atenciosamente Luciano Mattos


<retornado> := RoundTo(<valor>);

onde <valor> pode ser um valor ou uma variável;

exemplo:

Label1.Caption := FloatToStr(RoundTo(2.1956625));



Responder

28/03/2003

Noproblem

detesto ser incopetente mas vamos la
Jonhy fiz o que vc mandou da seguinte maneira

[b:b164049fdb]label3:=(round(label3.caption*100)/1000);[/b:b164049fdb]

mas ele diz o seguinte:

[b:b164049fdb]incompatible types: ´String´ and ´Integer´
expected but ´END´ found[/b:b164049fdb]

bom, vou colocar aqui abaixo o codigo: quem puder ajudar fico mais que agradecido:

[b:b164049fdb]procedure TForm1.Button2Click(Sender: TObject);
begin
label3.caption:=floattostr(strtofloat(label1.caption)*strtofloat(edit4.text)/100);
label3.caption:=floattostr(strtofloat(label2.caption)*strtofloat(label3.caption)/100);

end;
[/b:b164049fdb]

Para Entender:
edit4 e onde eu dou o valor CHEIO
label1 e onde fica gravado o desconto de 11,75¬
label2 e onde fica gravado o desconto de 2,5¬
label3 e onde recebe o valor que no qual quero que ele ARREDONDE.


entao. quando clicar no botao2 ele sai fazendo esses calculos e no final tem que me dar o valor Arredondado.

Forte abraço para todos
e mais uma vez desculpe minha ignorancia nesse assunto mas leigo e assim memso...

Luciano Mattos


Responder

28/03/2003

Aroldo Zanela

detesto ser incopetente mas vamos la Jonhy fiz o que vc mandou da seguinte maneira [b:b874784672]label3:=(round(label3.caption*100)/1000);[/b:b874784672] mas ele diz o seguinte: [b:b874784672]incompatible types: ´String´ and ´Integer´ expected but ´END´ found[/b:b874784672] bom, vou colocar aqui abaixo o codigo: quem puder ajudar fico mais que agradecido: [b:b874784672]procedure TForm1.Button2Click(Sender: TObject); begin label3.caption:=floattostr(strtofloat(label1.caption)*strtofloat(edit4.text)/100); label3.caption:=floattostr(strtofloat(label2.caption)*strtofloat(label3.caption)/100); end; [/b:b874784672] Para Entender: edit4 e onde eu dou o valor CHEIO label1 e onde fica gravado o desconto de 11,75¬ label2 e onde fica gravado o desconto de 2,5¬ label3 e onde recebe o valor que no qual quero que ele ARREDONDE. entao. quando clicar no botao2 ele sai fazendo esses calculos e no final tem que me dar o valor Arredondado. Forte abraço para todos e mais uma vez desculpe minha ignorancia nesse assunto mas leigo e assim memso... Luciano Mattos


Colega,

Não precisa se estressar. Realmente inteiro e string são incompatíveis. Faça o seguinte:

Vai no teu formulário e pressione ALT F12 (simultaneamente) copie todo o código e manda pra cá. Em minutos eu te mando resolvido.


Responder

28/03/2003

Noproblem

segue todo o fonte da unit.


unit Unitprin;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
Label4: TLabel;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button2Click(Sender: TObject);
begin
label3.caption:=floattostr(strtofloat(label1.caption)*strtofloat(edit4.text)/100);
label3.caption:=floattostr(strtofloat(label2.caption)*strtofloat(label3.caption)/100);
end;

end.


mais uma vez agradeço vossa compreensao em ajudar.

forte abraço para todos

Luciano Mattos


Responder

28/03/2003

Aroldo Zanela

Crie um novo projeto;
Pegue o código abaixo e copie via clipboard (marcar e ctrl c) em seguida volte para o seu projeto no modo de design (visualizando o formulário e não o código) pressione ctrl V:
  object Edit1: TEdit
    Left = 86
    Top = 30
    Width = 121
    Height = 21
    TabOrder = 0
  end
  object Edit2: TEdit
    Left = 86
    Top = 72
    Width = 121
    Height = 21
    TabOrder = 1
  end
  object Edit3: TEdit
    Left = 86
    Top = 114
    Width = 121
    Height = 21
    TabOrder = 2
  end
  object Edit4: TEdit
    Left = 86
    Top = 156
    Width = 121
    Height = 21
    TabOrder = 3
  end
  object Edit5: TEdit
    Left = 86
    Top = 198
    Width = 121
    Height = 21
    TabOrder = 4
  end
  object Button1: TButton
    Left = 92
    Top = 242
    Width = 75
    Height = 25
    Caption = ´Button1´
    TabOrder = 5
    OnClick = Button1Click
  end


Copie o código abaixo para colocar no evento do código do botton:

  edit3.Text := FloatToStr(StrToFloat(edit1.Text)*StrToFloat(edit2.Text)/100);
  edit5.Text := FloatToStr(SimpleRoundTo(StrToFloat(Edit3.Text)*StrToFloat(edit4.Text)/100))


No edit1 coloque 750
No edit2 coloque 11.71
No edit4 coloque 2.5

Pressione o botão.


Responder

28/03/2003

Noproblem

fiz o que vc mandou olha o que aparece quando tento executar.

[b:e34181f6c1]´edit1´ is not valid floating.point value.[/b:e34181f6c1]

ai fui e coloquei USES math

mas ai ele da outro erro e nao abre o aplicativo...

se voce puder salva e manda pro meu email

luciano@transfor.net

Grato

Luciano Mattos


Responder

28/03/2003

Aroldo Zanela

fiz o que vc mandou olha o que aparece quando tento executar. [b:10a05621bd]´edit1´ is not valid floating.point value.[/b:10a05621bd] ai fui e coloquei USES math mas ai ele da outro erro e nao abre o aplicativo... se voce puder salva e manda pro meu email luciano@transfor.net Grato Luciano Mattos

Luciano,

Desculpe, vou entrar numa reunião agora. O código que mandei acima é suficiente para criar o projeto (DFM) e tem o código pascal para o evento. Tenta seguir o roteiro acima. Daqui a duas horas eu entro em linha novamente.
Boa sorte.


Responder

28/03/2003

Anonymous

Faça assim:

label3.caption:=formatfloat(´#.00´,(strtofloat(label1.caption)*strtofloat(edit4.text)/100));
label3.caption:=formatfloat(´.00´,(strtofloat(label2.caption)*strtofloat(label3.caption)/100));

Espero ter ajudado.


Responder

28/03/2003

Noproblem

valeu grande Izaias, deu certinho aqui
Muito obrigado a todos que tentaram ajudar
Aroldo Zenela valeu pela sua paciencia... ;)


forte abraço

Luciano Mattos :D


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar