Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sergio Gomes_90739

Arredondamento no edit

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu acredito que mexer em arredondamento é sempre trabalhoso.

O post do Chrmos vai te mostrar a solução para que o arredondamento funciona mais eu vou complementar pra você.

Obs: Para as funções RoundTo(), SimpleRoundTo(), SetRoundMode() e GetRoundMode() você precisa declarar na uses a unit Math.

 

Mesmo conseguindo arredondar os campos, sugestiono pra você que ao final de toda a rotina você verifique se a soma de todos os edit é igual a 2404. Se não for, coloque o valor da subtração em uma variável := (2404 - (SomaTodosEdit)) e no ultimo edit sete o valor do edit := edit + variável.

 

Isso tudo porque pode ter valores que o arredondamento pode sair certo, mas a soma total não vai dar o valor que você almeja;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.