Arredondamento
23/05/2003
0
Quero somar os lancamentos em um determinado arquivo.
select sum(valor) from tabsalarios where funcionario = 48
no DataBase Desktop o valor é retornado correto
EXEMPLO : 285,79
na query dentro do programa o valor retornado é
285,78
diferenca de 1 centavo, eu acho que é problema de arrendodamento
como solucionar isto?
select sum(valor) from tabsalarios where funcionario = 48
no DataBase Desktop o valor é retornado correto
EXEMPLO : 285,79
na query dentro do programa o valor retornado é
285,78
diferenca de 1 centavo, eu acho que é problema de arrendodamento
como solucionar isto?
G_roseno
Curtir tópico
+ 0
Responder
Posts
23/05/2003
Kaybueno
Olá Colega!
Acho que isso pode te ajudar. Dê uma olhada. :wink:
Arredonda as casas decimais de um valor Float:
function Arredonda(Valor : Real Decimais : Byte) : Extended;
var
i : Byte;
ML : string;
RR : string;
begin
ML := ´0.´;
for i := 1 To Decimais do
begin
ML := ML + ´0´;
end;
RR := FormatFloat(ML,Valor);
Result := StrToFloat (RR);
end;
Quando houver,Arredonda uma possivel terceira casa decimal em uma variável:
function RoundNum(Valor:Extended;Decimais:Integer):Extended;
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;
Acho que isso pode te ajudar. Dê uma olhada. :wink:
Arredonda as casas decimais de um valor Float:
function Arredonda(Valor : Real Decimais : Byte) : Extended;
var
i : Byte;
ML : string;
RR : string;
begin
ML := ´0.´;
for i := 1 To Decimais do
begin
ML := ML + ´0´;
end;
RR := FormatFloat(ML,Valor);
Result := StrToFloat (RR);
end;
Quando houver,Arredonda uma possivel terceira casa decimal em uma variável:
function RoundNum(Valor:Extended;Decimais:Integer):Extended;
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;
Responder
Clique aqui para fazer login e interagir na Comunidade :)