DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Função para reverter um cálculo com porcentagem.

Em alguns cálculos ou em opções para desfazer operações, as vezes nos
deparamos com cálculos com percentuais e ai pode seguir aquela dúvida:
Cálculo de porcentagem inversa?

Veja o seguinte exemplo:
R$ 100,00 + 30,00% = R$ 130,00.

O cálculo está correto.
Mas caso seja necessário desfazer a operação, não podemos simplesmente
inverter a conta, pois irá dar um resultado errado.

Veja o exemplo abaixo:
R$ 130,00 – 30,00% = R$ 90,10.

Este valor é menor que o valor original de R$ 100,00.

A boa notícia é que existe uma função muito fácil de
ser utilizada que resolve este problema.
Abaixo segue o código fonte da função:

1
2
3
4
function GetValorBase(Valor, Percent : Double) : Currency;
begin
  Result := Valor / (1 + (Percent / 100));
end;

Exemplo com acréscimo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
const
  PERCENT = 30;
var
  vAux : Double;
begin
  { 100 + 30% = 130 }
  vAux := 100 + (100 * PERCENT / 100);
  ShowMessage(FormatFloat('#0.00', vAux));
 
  { Fazendo a operação inversa
  para desfazer o acrescimo de 30 % }
  vAux := GetValorBase(vAux, PERCENT);
  ShowMessage(FormatFloat('#0.00', vAux));
end;

Exemplo com desconto, repare que para reverter o percentual com desconto,
devemos passar o parâmetro do Percentual Negativo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button2Click(Sender: TObject);
const
  PERCENT = 30;
var
  vAux : Double;
begin
  { 100 - 30% = 70 }
  vAux := 100 - (100 * PERCENT / 100);
  ShowMessage(FormatFloat('#0.00', vAux));
 
  { Fazendo a operação inversa
  para desfazer o desconto de 30 % }
  vAux := GetValorBase(vAux, (PERCENT * -1) );
  ShowMessage(FormatFloat('#0.00', vAux));
end;

Dúvidas ou sugestões deixe nos comentários do post.

Facebook Comments Box
  • Giovani Da Cruz
  • 26.101 views
  • 0 comentários
  • 26 de março de 2015

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados