Código
Function Arredondar(value: double;casas : integer): double;
// 2) Na seção implementation digite a função conforme descrita abaixo:
Function Tform1.Arredondar(value: double;casas : integer): double;
Var
fracao, Total:real;
decimal:string;
begin
try
fracao:=Frac(value); //Retorna a parte fracionária de um número
decimal:=(RightStr(floattostr(fracao),length(floattostr(fracao))-2)); //decimal recebe a parte decimal
//Enquanto o tamanho da variavel decimal for maior que o número de casas faça
while length(decimal) > casas do
begin
//Verifica se o último digito da variável decimal é maior que 5
if strtoint(RightStr(decimal,1))>5 then
begin
//Descarta o último digito da variável Decimal
decimal:=leftstr(decimal,length(decimal)-1);
//Soma o valor número da variavel decimal + 1
decimal:=floattostr(strtofloat(decimal) + 1);
end
else
decimal:=leftstr(decimal,length(decimal)-1); //Descarta o último digito da variável Decimal
end;
result:=(int(value) + (strtofloat(decimal)/100)); //devolve o resultado para a função
except
Raise Exception.Create('Erro no arredondamento');
end;
end;
{
Como usar:
Arredondar(Campo ou vaiável do tipo Real (Float) , número de casas decimais desejado);
Ex:
Var valor,Resultado:real;
Valor:=10.005.526
Resultado :=Arredondar(valor,2);
Resultado=10.005,53
}
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009