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?
Pergunta
Paulo Nobre
Num artigo que li o escritor exemplifica como arredondar.
Para isto ele faz uso de duas funções:
E depois para exemplificar o uso faz o seguinte: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
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.