dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

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

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
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;

 

Para ver o artigo completo com exemplos em outras linguagem, acesse o link do blog Giovani Da Cruz:
https://giovanidacruz.com.br/como-fazer-o-calculo-de-porcentagem-inversa/

 

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

  • Giovani Da Cruz
  • 0 comentários
  • 26 de março de 2015

Deixe um comentário

Ir ao topo

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