Fórum arredondar resultado em valor tipo doulbe #522434
10/06/2015
0
procedure TForm1.Button6Click(Sender: TObject);
var
v1,v2 : double;
begin
v1 := StrToFloat(Edit13.Text);
v2 := StrToFloat(Edit3.Text);
Edit23.Text := FloatToStr(v1/(1-0.01*v2)/0.98);
end;
procedure TForm1.Button7Click(Sender: TObject);
var
v1,v2 : double;
begin
v1 := StrToFloat(Edit18.Text);
v2 := StrToFloat(Edit3.Text);
Edit26.Text := FloatToStr(v1/(1-0.01*v2));
var
v1,v2 : double;
begin
v1 := StrToFloat(Edit13.Text);
v2 := StrToFloat(Edit3.Text);
Edit23.Text := FloatToStr(v1/(1-0.01*v2)/0.98);
end;
procedure TForm1.Button7Click(Sender: TObject);
var
v1,v2 : double;
begin
v1 := StrToFloat(Edit18.Text);
v2 := StrToFloat(Edit3.Text);
Edit26.Text := FloatToStr(v1/(1-0.01*v2));
Jhonata Mazaia
Curtir tópico
+ 0
Responder
Posts
19/06/2015
Dorivan Sousa
testa ai qual a melhor opção
varias rotinas pra arrendondamento
varias rotinas pra arrendondamento
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;
function Arredondar(Valor: Double; Dec: Integer): Double;
var
Valor1,
Numero1,
Numero2,
Numero3: Double;
begin
Valor1:=Exp(Ln(10) * (Dec + 1));
Numero1:=Int(Valor * Valor1);
Numero2:=(Numero1 / 10);
Numero3:=Round(Numero2);
Result:=(Numero3 / (Exp(Ln(10) * Dec)));
end;
function ArredondarNumero(valor: extended; decimais: integer): extended;
var
factor, fraction: extended;
begin
factor := intPower(10, decimais);
valor:= strToFloat(floatToStr(valor * factor));
result := int(valor);
fraction := frac(valor);
if fraction >= 0.5 then
result := result + 1
else if fraction <= -0.5 then
result := result - 1;
result := result / factor;
end;
function RoundNum(Valor:Extended;Decimais:Integer):Extended;
{Quando houver,Arredonda uma possivel terceira casa decimal em uma variável}
var
I:Integer;
Multiplicador:Integer;
begin
if Decimais > 15 then
begin
Decimais := 15;
end
else if Decimais < 0 then
begin
Decimais := 0;
end;
Multiplicador := 1;
for I:=1 to Decimais do
begin
Multiplicador := Multiplicador*10;
end;
Result := round(Valor*Multiplicador)/Multiplicador;
end;
function Arredondar_Abaixo(Valor: Double; Dec: Integer): Double;
var
Aux: String;
Pos_Eq: Integer;
begin
Aux:=FormatFloat('###,###,###,##0.0000000',Valor);
Pos_Eq:=Pos(',',Aux);
Result:=StrToFloat(Pontos(Copy(Aux,1,Pos_Eq+Dec)));
end;
function Truncar(Valor: Double; Dec: Integer): Double;
var
Aux: String;
Pos_Eq: Integer;
begin
Aux:=FormatFloat('###,###,###,##0.0000000',Valor);
Pos_Eq:=Pos(',',Aux);
Result:=StrToFloat(Pontos(Copy(Aux,1,Pos_Eq+Dec)));
// Result:=Valor;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)