Arredondamento no edit
Tenho 2404 pontos a serem distribuídos em 8 edit, onde cada um recebe sua porcentagem.
No excel os valores são arredondados para baixo ou para cima automaticamente quando elimino as casas decimais.
456,76 = 457
432,72 = 433
384,64 =385
360,60 =361
264,44 =264
192,32 =192
168,28 =168
144,24 =144
Não sei como fazer esse arredondamento da mesma forma no delphi , meu sistema não aceita casa decimais, mais precisa delas pra se orientar se o arredondamento é pra cima ou pra baixo, depois desse reconhecimento de arredondamento preciso eliminar as casas decimais segue o código:
procedure TForm1.Button1Click(Sender: TObject);
var
v1: integer;
v2: integer;
v3: integer;
v4: integer;
begin
v1 := StrToInt(Edit1.Text);
v2 := StrToInt(Edit10.Text);
v3 := (v1*v2);
v4 := (v3 Div 100);
edit2.text := IntToStr(v4);
Aparentemente o delphi não esta reconhecendo as casas decimais para poder arredondar pra cima e pra baixo, ou está desconsiderando as mesmas.
No excel os valores são arredondados para baixo ou para cima automaticamente quando elimino as casas decimais.
456,76 = 457
432,72 = 433
384,64 =385
360,60 =361
264,44 =264
192,32 =192
168,28 =168
144,24 =144
Não sei como fazer esse arredondamento da mesma forma no delphi , meu sistema não aceita casa decimais, mais precisa delas pra se orientar se o arredondamento é pra cima ou pra baixo, depois desse reconhecimento de arredondamento preciso eliminar as casas decimais segue o código:
procedure TForm1.Button1Click(Sender: TObject);
var
v1: integer;
v2: integer;
v3: integer;
v4: integer;
begin
v1 := StrToInt(Edit1.Text);
v2 := StrToInt(Edit10.Text);
v3 := (v1*v2);
v4 := (v3 Div 100);
edit2.text := IntToStr(v4);
Aparentemente o delphi não esta reconhecendo as casas decimais para poder arredondar pra cima e pra baixo, ou está desconsiderando as mesmas.
Luis Sergio
Curtidas 0
Respostas
Marcos Oliveira
18/09/2013
Luiz, tente fazer assim:
Espero que funcione.
Att,
Marcos
procedure TForm1.Button1Click(Sender: TObject);
var
v1: Double;
v2: Double;
v3: Double;
v4: Double;
begin
v1 := StrToInt(Edit1.Text);
v2 := StrToInt(Edit10.Text);
v3 := (v1*v2);
v4 := (v3 / 100); // Substitua o Div por "/", já que o div retorna só a parte inteira.
edit2.text := FloatToStr(Round(v4)); // Finalmente, arredonde o valor.
end;
Espero que funcione.
Att,
Marcos
GOSTEI 0
Luis Sergio
18/09/2013
Luiz, tente fazer assim:
Espero que funcione.
Att,
Marcos
procedure TForm1.Button1Click(Sender: TObject);
var
v1: Double;
v2: Double;
v3: Double;
v4: Double;
begin
v1 := StrToInt(Edit1.Text);
v2 := StrToInt(Edit10.Text);
v3 := (v1*v2);
v4 := (v3 / 100); // Substitua o Div por "/", já que o div retorna só a parte inteira.
edit2.text := FloatToStr(Round(v4)); // Finalmente, arredonde o valor.
end;
Espero que funcione.
Att,
Marcos
Funcionou Marcos Marcos, seu código está perfeito. Obrigado
*Não vou postar o código porque ficou exatamente como está no quote do Marcos.
GOSTEI 0
Deivison Melo
18/09/2013
ok, que bom que o post foi solucionado!
Bons códigos e um abração!
Bons códigos e um abração!
GOSTEI 0