Arredondar valor 2,1999 para 2,20
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
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
Curtidas 0
Respostas
Aroldo Zanela
28/03/2003
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.
GOSTEI 0
Noproblem
28/03/2003
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
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
GOSTEI 0
Jonhy Riper
28/03/2003
É simples, mas resolve:
NovoValor:=(round(Valor*100)/1000) ;
NovoValor:=(round(Valor*100)/1000) ;
GOSTEI 0
Aroldo Zanela
28/03/2003
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));
GOSTEI 0
Noproblem
28/03/2003
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
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
GOSTEI 0
Aroldo Zanela
28/03/2003
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.
GOSTEI 0
Noproblem
28/03/2003
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
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
GOSTEI 0
Aroldo Zanela
28/03/2003
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:
Copie o código abaixo para colocar no evento do código do botton:
No edit1 coloque 750
No edit2 coloque 11.71
No edit4 coloque 2.5
Pressione o botão.
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.
GOSTEI 0
Noproblem
28/03/2003
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
[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
GOSTEI 0
Aroldo Zanela
28/03/2003
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.
GOSTEI 0
Anonymous
28/03/2003
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.
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.
GOSTEI 0
Noproblem
28/03/2003
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
Muito obrigado a todos que tentaram ajudar
Aroldo Zenela valeu pela sua paciencia... ;)
forte abraço
Luciano Mattos :D
GOSTEI 0