Ir para conteúdo
Fórum Script Brasil
  • 0

Arredondamento


Paulo Nobre

Pergunta

Num artigo que li o escritor exemplifica como arredondar.

Para isto ele faz uso de duas funções:

function Arredonda1(Valor :Double; Casas: Byte) :Double;
  var
    StrFormat :String;
  begin
    StrFormat := '#.';
    while Casas > 0 do
    begin
      // inicializa quantidade de zeros ref. as casas decimais desejadas
      StrFormat := StrFormat +'0';
      Dec(Casas);
    end;
    Result := StrToFloat(FormatFloat(StrFormat, Valor));
  end;

  function Arredonda2(Valor :Double; Casas: Byte) :Double;
  var
    Multiplicador :Extended;
  begin
    Multiplicador := Power(10, Casas); // unit Math ou função acima
    // desloca casas à direita e arredonda
    Valor := Round(Valor * Multiplicador);
    // retorna casas à esquerda
    Result := Valor/Multiplicador;
  end;
E depois para exemplificar o uso faz o seguinte:
procedure TForm1.Button1Click(Sender: TObject);
  var
    Valor :Double;
  begin
    Valor := 8386.428;
    Label1.Caption := FloatToStr(Arredonda1(Valor, 2));
    Label2.Caption := FloatToStr(Arredonda2(Valor, 2));
  end;

O resultado é 8386,43

Na função 2 está claro que o uso da função Round cuida do arredondamento.

E na função 1, quem está fazendo o arredondamento?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Segundo o Help do Delphi do FormatFloat:

The number being formatted is always rounded to as many decimal places as there are digit placeholders ('0' or '#') to the right of the decimal point. If the format string contains no decimal point, the value being formatted is rounded to the nearest whole number.
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...